【发布时间】:2017-01-07 15:40:20
【问题描述】:
我正在尝试解析包含某些用户信息的 xml 文件。像这样的
users.xml
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<name>Alexander</name>
<email>alexander@test.com</email>
</user>
<user>
<name>Tyler</name>
<email>tyler@test.com</email>
</user>
</users>
我正在使用DOMXpath 提取此 xml 中的所有用户以及所有这些字段。
在 xml 文件中,我有 15 个用户,当我在此代码中搜索有关一个用户的所有字段时
$username = $xpath->query ( '//email', $users->item(0) );
我得到了 15 个长度,而不是 1。我的意思是 query 正在搜索所有 xml,而不是寻找实际用户。
我做错了什么?
xml_query.php
$xml = new DOMDocument();
$xml->loadXML( $xml_content );
$xpath = new DOMXPath($xml);
$users = $xpath->query( '//user' );
var_dump( $users->item(0) );
$username = $xpath->query ( '//email', $users->item(0) );
var_dump( $username );
【问题讨论】:
-
DOMXPath参数应该是DOMDocument的类型而不是 xml 文件。 -
我在代码中错过了两条通道,
DOMXPath在构造函数 @Mohammad 中有DOMDocument -
从
//email中删除//
标签: php xml xpath domdocument domxpath