PHP DomParser从xml标记获取选项名称和值

时间:2012-03-22 13:56:22

标签: php xml xml-parsing domparser


我正在尝试使用PHP解析xml文件。
我正在使用此代码,它适用于获取标记名和值:

  

function getChildNodes($ dom,$ SearchKey){

  foreach ($dom->getElementsByTagName($SearchKey) as $telefon) {
      foreach($telefon->childNodes as $node) {
          print_r(
          $SearchKey . " : " . $node->nodeValue . "\n"                
      );
  }
     

}   }

示例xml工作代码:

<inputs>
 <input>C:\Program Files\VideoLAN\VLC\airbag.mp3</input>
 <input>C:\Program Files\VideoLAN\VLC\sunpark.mp3</input>
 <input>C:\Program Files\VideoLAN\VLC\rapidarc.mp3</input>
</inputs>

示例xml的无效代码:

<instances>
 <instance name="default" state="playing" position="0.050015" time="9290569" length="186489519" rate="1.000000" title="0" chapter="0" can-seek="1" playlistindex="3"/>
</instances>

有人可以帮我弄清楚我需要用什么选项来获取optioname和optionvalue吗?

所有回复都表示赞赏

1 个答案:

答案 0 :(得分:1)

以下是用于打印XML属性的代码示例:

<?php

$source = '<instances><instance name="default" state="playing" position="0.050015" time="9290569" length="186489519" rate="1.000000" title="0" chapter="0" can-seek="1" playlistindex="3"/></instances>';

$doc = new DOMDocument();
$doc->loadXML($source);

$el = $doc->firstChild->firstChild;

for ($i = 0; $i < $el->attributes->length; $i++) {
    $attr = $el->attributes->item($i);
    echo 'Name: '.$attr->name, "\n";
    echo 'Value: '.$attr->value, "\n";
}

希望这有帮助。