XPath:可以跨层取节点,迅速简捷 的定位你希望查找的节点
xpath.xml
<?xml version="1.0" encoding="utf-8"?> <students> <student> <name>小明</name> <age>10</age> <introduce>来自广东</introduce> </student> <student> <name>小花</name> <age>21</age> <introduce>来自北京</introduce> </student> </students>
xpath.PHP
<?PHP $xmldoc = new DOMDocument(); //创建DOMDocument 对象 $xmldoc->load("xpath.xml"); //加载xml文件 $domXPath = new DOMXPath($xmldoc); //转成DOMPath $node_list = $domXPath->query("/students/student/name"); //即路径表达式--查询节点,for($i=0;$i<$node_list->length;$i++) { echo $node_list->item($i)->tagName."<br/>"; echo $node_list->item($i)->nodeValue."<br/>"; } ?>
input:
name
小明
name
小花
XPath节点选择:
/AAA选择根元素AAA /AAA/BBB选择AAA的所有BBB子元素 /AAA/BBB/*选择所有/AAA/BBB/下所有元素 /*/*/BBB选择所有2个祖先元素的BBB元素 /AAA/BBB[1]选择AAA的第一个BBB子元素 /AAA/BBB[last()]选择AAA的最后一个BBB子元素 //AAA选择所有AAA元索 //AAA/BBB选择所有AAA元素下BBB元素 //*选择所有元素 //@id选择所有的id属性 //BBB[@id]选择有id属性的BBB元素 //BBB[@*]选择有任意属性的BBB元素 //BBB[not(@*)]选择没有属性的BBB元素 //BBB[@id='b1']选择包含有属性id且值为b1的BBB元素 //...