SimpleXMLElement:将不同标签的确切位置放入同一父级

时间:2016-01-07 02:31:24

标签: php xml simplexml

我有这个XML(简化):

object(SimpleXMLElement) {
  ["p"]=>
  array(3) {
    ...
  }
  ["image"]=>
  array(1) {
    [0]=>
    object(SimpleXMLElement) {
    }
  }
}

我想从中创建一个可读的文本,所以我用SimpleXMLElement解析它并得到它:

<section>

所有标签都按名称分组,因此我无法确定图片在文本中的位置 - 只是它存在。

问题:有没有办法在[0] => 'p', [1] => 'p', [2] => 'img', [3] => 'p' 中获得标签的确切顺序?像这样:

{{1}}

这样我可以按正确的顺序将它们转换为HTML吗?

1 个答案:

答案 0 :(得分:1)

您可以遍历每个<section>标记的子节点。

// Assumes your string is loaded, e.g.
// $xml = simplexml_load_string($xml_string);
foreach($xml->xpath('//section') as $section) {
    foreach($section->children() as $node) {
        echo $node->getName(), "\n";
    }
}

您可以看到this outputs

p
p
img
p