Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:Xml与多个同名同级元素,保持顺序_Php_Xml_Simplexml_Siblings - Fatal编程技术网

PHP:Xml与多个同名同级元素,保持顺序

PHP:Xml与多个同名同级元素,保持顺序,php,xml,simplexml,siblings,Php,Xml,Simplexml,Siblings,我有一个xml文件,看起来像这样: <items> <itemA/> <itemB/> <itemA/> <itemA/> <itemC/> </items> 但是我需要使用php来处理这个问题,并维护元素的顺序。 我知道如何使用simplexml和数组表示法访问同名元素,但我找不到一种方法来遍历它们并保持它们的顺序。选择父元素并遍历其子元素,请参见 $x

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

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

但是我需要使用php来处理这个问题,并维护元素的顺序。
我知道如何使用simplexml和数组表示法访问同名元素,但我找不到一种方法来遍历它们并保持它们的顺序。

选择父元素并遍历其子元素,请参见

$xml=新的SimpleXMLElement(
'
');
foreach($xml->children()作为$item){
//...
}

迭代
项的子项
;我为它们添加了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";
 }
$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