簡體   English   中英

使用PHP解析XML以獲取屬性值?

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

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