如果存在,如何获取xml文件的子节点,否则使用php跳转到下一个节点

时间:2012-08-31 02:33:40

标签: php xml

我有一个类似于以下

的XML文件
<Navigation Name="Klengeräte">
<Market Type="Navigation"></Market>
<Navigation Name="Bodenpflege">

<Market Type="Navigation"></Market>

<Navigation Name="Wöchentches">
<Market Type="Navigation">
</Market>
<Navigation Name="Ultra One">
<personalinfo>
 <Name> testing</Name>
 <grade> A </grade>
<info> test information </info>
</personalinfo>
</Navigation>
</Navigation>
<personalinfo>
<Name> testing</Name>
<grade> A </grade>
<info> test information </info>
</personalinfo>
<personalinfo>
<Name> testing</Name>
<grade> A </grade>
<info> test information </info>
</personalinfo>
</Navigation>
</Navigation> 

我想阅读XML中的个人信息标签

如果有任何案件问题请忽略,我已经尝试了很多方法,但我找不到正确的解决方案。

2 个答案:

答案 0 :(得分:0)

您可以使用DOMDocument获取'personalinfo'标记并使用foreach和DOMNode进行迭代。

$parser = new DOMDocument();
$parser->loadXML($xml);
$infos = $parser->getElementsByTagName('personalinfo');
foreach($infos as $info) { 
  foreach($info->childNodes as $infoChild) {
    echo $infoChild->nodeName . '====' . $infoChild->nodeValue . '<br>';
  }
}

这不是一个完美的解决方案,但它应该让你开始朝着正确的方向前进。有关xml的实现,请参阅http://codepad.viper-7.com/f4u9FC

答案 1 :(得分:0)

感谢您的帮助,我得到了解决方案。

我们可以使用

获取所有个人标签的信息
foreach($temp_xml->xpath('//PersonalInformation') as $product_xml){

  $name = $product_xml{'Name'};

  $grade = $product_xml{'grade'};

}

通过这种方式,我们可以阅读任何价值。它对我有用。