簡體   English   中英

如何通過php訪問xml結構中的特定節點?

[英]How do I access specific nodes in a xml structure via php?

我正在嘗試解析具有以下結構的xml字符串$content

<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">269</int></lst>
</response>

我對兩個int字段(此處的值為0269 )感興趣。

我通過以下方式加載xml:

$xml = simplexml_load_string($content);

然后,我期望:

$fields = $xml->xpath('int');

會給我這些字段的數組,a,它是空的。

我究竟做錯了什么? 如何在此示例中解析int字段?

你忘了斜杠

$fields = $xml->xpath('//int');

$status= $xml->xpath('//int[@name="status"]');
$QTime= $xml->xpath('//int[@name="QTime"]');

嘗試

$xml ='<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">269</int></lst>
</response>';


$xml = simplexml_load_string($xml);
print_r($xml);

echo $field = $xml->lst->int[0];
echo $fields = $xml->lst->int[1];

對於屬性:

echo $attr1 = $xml->lst->int[0]->attributes();
echo $attr2 = $xml->lst->int[1]->attributes();

您需要像這樣更改xpath表達式:

$fields = $xml->xpath('lst/int');

這將返回帶有節點值和屬性名稱值的完整數組。 然后,您可以像這樣獲取它們:

$fields[0]->{0} AND $fields[1]->{0}

暫無
暫無

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

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