簡體   English   中英

僅在PHP中使用XPath屬性XML

[英]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

http://codepad.org/dEwYgehp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM