PHP:Xml具有相同名称的多个兄弟元素,维护顺序

时间:2014-08-22 14:22:30

标签: php xml simplexml siblings

我有一个xml文件,看起来像这样:

<items>
     <itemA/>
     <itemB/>
     <itemA/>
     <itemA/>
     <itemC/>
 </items>

但我需要使用php处理它并维护元素顺序。 我理解如何使用simplexml和数组表示法访问具有相同名称的元素,但我无法找到一种方法来迭代它们所有维护它们的顺序。

2 个答案:

答案 0 :(得分:1)

选择父元素并迭代其子元素,请参阅http://php.net/manual/en/simplexmlelement.children.php

$xml = new SimpleXMLElement(
'<items>
     <itemA/>
     <itemB/>
     <itemA/>
     <itemA/>
     <itemC/>
 </items>');

foreach ($xml->children() as $item) {
  //...
}

答案 1 :(得分:1)

items的孩子进行迭代;我已经为他们添加了ID,以证明他们保持有序。

$xml = new SimpleXMLElement('<items>
     <itemA id="1" />
     <itemB id="2" />
     <itemA id="3" />
     <itemA id="4" />
     <itemC id="5" />
 </items>');

 foreach ($xml->children() as $child) {
    echo "looking at " . $child->getName() . ", id: " . $child['id'] . "\n";
 }

输出:

looking at itemA, id: 1
looking at itemB, id: 2
looking at itemA, id: 3
looking at itemA, id: 4
looking at itemC, id: 5