[英]Using PHP to Parse XML to get Attribute values?
我試圖使用PHP解析XML文件,以便找到屬性值。
XML如下所示( example.xml ):
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<xryfile XRYVersion="6.11.1.0">
<images>
<image type="PHYSICAL" id="0" version="6.11.1">
<views>
<view type="location_history_view">
<nodes>
<node>
<properties>
<property type="application">Facebook Messenger</property>
<property type="longitude">-1.000000</property>
<property type="latitude">1.000000</property>
</properties>
</node>
</nodes>
</view>
</views>
</image>
</images>
</xryfile>
我希望提取“屬性”節點的值,但我不確定用於提取此信息的語法。
我試過以下代碼:
<?php
$xml = simplexml_load_file('example.xml');
foreach($xml->property[0]->attributes() as $a) {
echo $a;
}
?>
如果節點說:我可以解決如何輕松提取節點的問題:
<property>Facebook Messenger</property>
但是,當我看起來像這樣時,我無法弄清楚如何提取屬性值:
<property type="application">Facebook Messenger</property>
我非常感謝這個問題的一些幫助,因為我已經被困了一段時間了。
提前致謝 :)
試試這個:
foreach($xml->property AS $property) {
if(isset($property['type'])){
$a = $property['type'];
echo $a;
}
}
您是否必須使用SimpleXML? 如果沒有,你可以嘗試使用DOMDocument。 代碼如下:
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->load('example.xml');
$properties = $dom->getElementsByTagName('property');
foreach($properties AS $property)
{
$value = $property->nodeValue;
$type = $property->getAttribute('type');
echo '<div>Node Information/Value :'. $value. '<br/>'. 'Node attribute:'. $type. '</div>';
}
這與所有3個屬性相呼應:
foreach($xml->images->image->views->view->nodes->node->properties->property as $obj){
echo $obj->attributes()->type."<br/>";
}
結果:
application
longitude
latitude
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.