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元素
//...