如何解析XML以使用SimpleXML获取多个文本块?

时间:2009-03-19 21:48:02

标签: php xml parsing simplexml

我想解析一些看起来像这样的XML:

<node>
  This is
  <child>
    blah
  </child>
  some
  <child>
    foo
  </child>
  text
</node>

如何在Simple XML中访问文本节点子节点?

我可以按正确的文本和元素子项顺序访问它们吗?

我需要其他一些包吗?

2 个答案:

答案 0 :(得分:5)

我强烈建议您通过SimpleXML切换到DOM functions。我前一段时间得到了这样的答案which wasn't very popular,但我仍然坚持这一点。 DOM功能非常强大:额外的冗长是值得的。

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

foreach ($doc->documentElement->childNodes as $node) {
    if ($node->nodeType === XML_TEXT_NODE) {
        echo $node->nodeValue . "\n";
    }
}

答案 1 :(得分:0)

foreach($this->xml->xpath('/node/child') as $child){
   ...
}