[英]Only attributes XML using XPath in PHP
我有类似的XML文件(“ x_path_att.xml”)
<?xml version="1.0" encoding="UTF-8"?>
<root>
<book id="1" name="Book1" genre="Fantasy" />
<book id="2" name="Book2" genre="Novel" />
</root>
我想做:在id = 1的地方显示书名。我使用XPath。
<?php
$xml = simplexml_load_file("x_path_att.xml");
$book_name = $xml->xpath("root/book[@id='1']/@name");
print_r($book_name);
echo '<BR />'.$book_name[0].'<BR />';
?>
这是我在屏幕上的输出:
Array ( )
Notice: Undefined offset: 0 in D:\EasyPHP... on line 6
因此很明显,数组为空,但是我不明白为什么。 我在互联网上搜索,我认为一切都应该没问题。 请问错误在哪里?
谢谢!
您在路径的开头缺少斜杠:
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<book id="1" name="Book1" genre="Fantasy" />
<book id="2" name="Book2" genre="Novel" />
</root>
XML;
$xml = simplexml_load_string($xml);
$book_name = $xml->xpath("/root/book[@id='1']/@name");
print_r($book_name);
并获取属性的值:
echo $book_name[0]->attributes()->name;
赠送:
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => Book1
)
)
)
Book1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.