簡體   English   中英

用php和xpath解析xml

[英]Parsing xml with php and xpath

我正在嘗試解析xml文件以僅返回具有特定ID的項目,但無法使其正常工作。

這就是我在PHP

$xml_str = file_get_contents("test.xml");
$xml = simplexml_load_string($xml_str);
$albid = $_GET['id'];

$nodes = $xml->xpath('//library/book[@id=1]');

foreach($nodes as $node) {
echo $node['title'].'<br/>';
}

首先,PHP沒有從xml文件返回任何內容。

我需要解決什么才能返回數據?

另外,如何在xpath中輸入$ albid以便從鏈接中檢索ID?

朝正確方向的任何指針將不勝感激。

謝謝!

-這是示例xml文件-

<library>
<book id="1">
    <title>PHP and MySQL</title>
    <author fname="miguel" lname="alvarez">Miguel Alvarez</author>
</book>
<book id="2">
    <title>JAVA 123</title>
    <author fname="william" lname="vega">WIlliam Vega</author>
</book>

首先,必須關閉<library>標記,否則XML格式不正確,解析將失敗。

SimpleXMLElement :: xpath()返回一個對象( ref ),因此在循環內執行: echo $node->title.'<br/>';

將$ albid放入字符串中..使用字符串連接: $nodes = $xml->xpath('//library/book[@id='.$albid.']');

嘗試這個,

$xml_str = file_get_contents("test.xml");
$xml = simplexml_load_string($xml_str);
$albid = $_GET['id'];

$nodes = $xml->xpath("//library/book[@id=$albid]");

foreach($nodes as $node) {
    echo $node->title.'<br/>';
}

暫無
暫無

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

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