Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php xml+xpath,打印元素_Php_Xml_Xpath - Fatal编程技术网

Php xml+xpath,打印元素

Php xml+xpath,打印元素,php,xml,xpath,Php,Xml,Xpath,xml文件示例: Notice: Undefined property: DOMNodeList::$id in D:\wamp\www\xml\index.php on line 15 id: Notice: Undefined property: DOMNodeList::$name in D:\wamp\www\xml\index.php on line 16 name: <?php $xml = new DOMDocument(); $xml->load('test.x

xml文件示例:

Notice: Undefined property: DOMNodeList::$id in D:\wamp\www\xml\index.php on line 15
id:

Notice: Undefined property: DOMNodeList::$name in D:\wamp\www\xml\index.php on line 16
name:

<?php
$xml = new DOMDocument();

$xml->load('test.xml');

$xpath = new DOMXPath($xml);

$query = '/people/person[id="33333"]';

$entries = $xpath->query($query);

echo 'id:'. $entries->id.'<br/>';
echo 'name:'.$entries->name.'<br/>';
?>
首先,id节点不存在

<people>
...
    <person>
        <phone>33333</phone>
        <name>Aadgar</name>
        <last_name>Adas</last_name>
    </person>
...
</people>
我想你想要:

$query = '/people/person[id="33333"]';
那么,你必须做:

$query = '/people/person[phone="33333"]';
您似乎混淆了名称和语法。

首先,id节点不存在

<people>
...
    <person>
        <phone>33333</phone>
        <name>Aadgar</name>
        <last_name>Adas</last_name>
    </person>
...
</people>
我想你想要:

$query = '/people/person[id="33333"]';
那么,你必须做:

$query = '/people/person[phone="33333"]';

您似乎混淆了语法和语法。

您的xpath搞错了。33333不是电话号码

试一试

他们没有身份证

$query = '/people/person[phone="33333"]';

尝试删除id部分

xpath错误。33333不是电话号码

试一试

他们没有身份证

$query = '/people/person[phone="33333"]';
尝试删除id部分

尝试以下操作:

echo 'id:'. $entries->id.'<br/>';
echo 'name:'.$entries->name.'<br/>';
试试这个:

echo 'id:'. $entries->id.'<br/>';
echo 'name:'.$entries->name.'<br/>';
$query='/people/person[phone=33333]'$query='/people/person[phone=33333]';