php - simpleXML帮助

时间:2011-04-22 17:49:25

标签: php simplexml

我有这个XML代码:

<?xml version="1.0"?>
<Days>
  <day value="1">
    <Imsaak>04:59</Imsaak>
    <Fajr>05:09</Fajr>
    <Sunrise>06:23</Sunrise>
    <Dhuhr>12:39</Dhuhr>
    <Asr>16:12</Asr>
    <Sunset>18:55</Sunset>
    <Maghrib>19:10</Maghrib>
    <Isha>20:04</Isha>
  </day>
  <day value="2">
    <Imsaak>04:58</Imsaak>
    <Fajr>05:08</Fajr>
    <Sunrise>06:22</Sunrise>
    <Dhuhr>12:39</Dhuhr>
    <Asr>16:12</Asr>
    <Sunset>18:56</Sunset>
    <Maghrib>19:11</Maghrib>
    <Isha>20:05</Isha>
  </day>
</Days>

我希望根据属性值选择<day>节点

我正在使用SimpleXMLElement类,但我不知道如何选择arrtibute值。

我怎么能这样做?

编辑:我的代码:

include 'days.xml';

$xml = new SimpleXMLElement($xmlstr);

foreach ($xml->day as $day) {
   // process data
}

2 个答案:

答案 0 :(得分:0)

$xml = new SimpleXMLElement($xmlStr)
$xml->day[0]->attribute()->value;//will echo out 1

当然,你可以像这样整天度过:

foreach($sml->day as $day){
     $day->attribute()->value; //will trace out 1 and then 2
}

答案 1 :(得分:0)

来自php手册SimpleXMLElement::attributes(有点编辑)

考虑这些数据:

<?xml version="1.0" encoding="utf-8"?>
<data>
   <item ID="30001">
      <Company>Navarro Corp.</Company>
   </item>
   <item ID="30002">
      <Company>Performant Systems</Company>
   </item>
   <item ID="30003">
      <Company>Digital Showcase</Company>
   </item>
</data>

列出ID属性和公司元素值的示例:

<?php
$xmlObject = new SimpleXMLElement($xmlstring);
foreach ($xmlObject->children() as $node) {
        $arr = $node->attributes();   // returns an array
        if(in_array("30002", $arr)){     // search the value of an attribute
            print ("Company=".$node->Company);
        }
        //depending of your needs, you could use a switch / case instead of use an if

}
?>