有一个xml文件,我如何获取具有/不具有属性的内容?例如,具有以下内容:
<book id="1">
<title>...</title>
<author>...</author>
</book>
<book id="2">
<title>...</title>
<author>...</author>
</book>
<book id="3">
<title>...</title>
<author>...</author>
</book>
输入asbook
和id
as的标记名2
,它应该返回其中的所有内容,在这种情况下:
<title>...</title>
<author>...</author>
我已经解决了将xml文件看成字符串并使用该字符串的问题,但是我想问是否可以使用xml文件来做一些操作而无需直接滚动所有内容。实际上,我有一个很大的xml文件(大约30-40 MB),只是想搜索其中的内容作为坐标标记名和(如果存在)属性。文件的结构不是“常量”。
DOMXPath::query
是用过滤选定元素的好方法XPath
。您可以选择具有特定属性的元素。代码查找book
标记,其id
属性值是2
。
$dom = new DOMDocument;
$dom->loadXML($str);
$xpath = new DOMXPath($dom);
$book = $xpath->query("//book[@id='2']")->item(0);
foreach($book->childNodes as $node) {
@$html .= $dom->saveHTML($node);
}
echo $html;
请注意,代码的最后部分遍历选定元素的子元素,以获取其中的html。
在演示中检查结果
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句