[英]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
字段(此處的值為0
和269
)感興趣。
我通過以下方式加載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.