🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点。主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]。 Xapth主要用来在XML文档中查询信息的工具,通过使用路径表达式可以解析XML文件,读取XML文件中的数据 ### 下面以案例来介绍,XML 文件如下(simplexml.xml): ~~~ <?xml version="1.0" encoding="UTF-8"?> <books> <book house="qinghuachubanshe"> <code>sb001</code> <price>200</price> <author>xiaoming</author> <title>tianlongbabu</title> </book> <book house="beidachubanshe"> <code>sb002</code> <price>400</price> <author>daming</author> <title>xiaoaojianghu</title> </book> </books> ~~~ ### PHP 代码如下: ~~~ <?php //1 创建DOMDocument对象 $dom = new DOMDocument("1.0", "UTF-8"); //2 加载Xml文件 $dom->load("simplexml.xml"); //3 转成DomXPath对象 $xpath = new DOMXPath($dom); //4 查找工作 $node_list = $xpath->query("/books/book/title"); echo "一共有".$node_list->length."个<br/>"; for($i=0; $i<$node_list->length;$i++){ $node = $node_list->item($i); // var_dump($node_list); /*foreach ($node as $key=>$val){ echo } */ echo $node->nodeName.":".$node->nodeValue."<br/>"; } ?> ~~~ ### 输入如下: 一共有2个 title:tianlongbabu title:xiaoaojianghu 想更深入得了解XPath的使用,请参考XPath文档:[http://download.csdn.net/detail/jsh13417/6042671](http://download.csdn.net/detail/jsh13417/6042671) # simpleXml     simpleXMl的核心思想:以面向对象的方法来操作Xml文件。simpleXml是比较简单的方式,通常会和XPath配合使用, ~~~ <?php //装载方式1 ‘装载一个Xml文件 // $lib = simplexml_load_file("simplexml.xml"); //2 DOM 对象装载方式 //1 创建DOMDocument对象 $dom = new DOMDocument("1.0", "UTF-8"); //2 加载Xml文件 $dom->load("simplexml.xml"); $lib = simplexml_import_dom($dom); echo "<pre>"; // var_dump($lib);/*1*/ echo "</pre>"; //取出书, $books = $lib->book; /* //取出第一本书 $book1=$books[0]; //取出书名 echo $book1->title.":".$book1->author; */ for($i=0;$i<count($books);$i++){ $book1=$books[$i]; //取出属性 echo "属性:".$book1['house']."<br/>"; echo "第".$i."本书的 书名||作者<br/>"; echo $book1->title."||".$book1->author."<br/>"; } echo "***simplexml 和xpath结合使用***<br/>"; echo "取出所有的书名:<br/>"; $titles = $lib->xpath("//title"); foreach ($titles as $key=>$val){ echo "<br/>".$key."||".$val; } echo "<br/>*****************"; ?> ~~~ 输出如下: ~~~ 属性:qinghuachubanshe 第0本书的 书名||作者 tianlongbabu||xiaoming 属性:beidachubanshe 第1本书的 书名||作者 xiaoaojianghu||daming ***simplexml 和xpath结合使用*** 取出所有的书名: 0||tianlongbabu 1||xiaoaojianghu ***************** ~~~ ###第三种转载Xml方式,字符串方式,如下: ~~~ <?php echo "<br/>simplexml也可以直接装载一个string字符串(Xml规范)"; $string = <<<XML <?xml version='1.0'?> <document> <title>Forty What?</title> <from>Joe</from> <to>Jane</to> <body> I know that's the answer -- but what's the question? </body> </document> XML; $xml = simplexml_load_string($string); print_r($xml); ?> ~~~ 以上便是对 2个Xml技术的简单入门介绍,想更深入的了解就需要看文档了。 参考资料: [http://cn2.php.net/manual/en/function.simplexml-load-string.php](http://cn2.php.net/manual/en/function.simplexml-load-string.php)