次のような XML を解析したいと考えています。
<node>
This is
<child>
blah
</child>
some
<child>
foo
</child>
text
</node>
シンプル XML でテキスト ノードの子にアクセスするにはどうすればよいですか?
テキストと要素の子の正しい順序でそれらにアクセスできますか?
これには他のパッケージが必要ですか?
SimpleXML よりもDOM 関数に切り替えることを強くお勧めします。少し前にこのような回答がありましたが、あまり人気がありませんでしたが、今でも支持しています。DOM 関数は非常に強力です。追加の冗長性はそれだけの価値があります。
$doc = new DOMDocument();
$doc->loadXML($xmlString);
foreach ($doc->documentElement->childNodes as $node) {
if ($node->nodeType === XML_TEXT_NODE) {
echo $node->nodeValue . "\n";
}
}
foreach($this->xml->xpath('/node/child') as $child){
...
}