假设我有以下XML:
<Book>
<bookname>thename</bookname>
<chapters>
<chapter>
<name>chapter1</name>
</chapter>
<chapter>
<name>chapter2</name>
</chapter>
</chapters>
</Book>
如何获得如下XML:
<chapters>
<chapter>
<name>chapter1</name>
</chapter>
<chapter>
<name>chapter2</name>
</chapter>
</chapters>
一种方法是手动移除不需要的元素,例如
$resultXML = new SimpleXMLElement($inputXML);
unset($resultXML->bookname);
$resultXML = $resultXML->asXml();
echo format_result($resultXML,$format);
但是,如果我有一个包含许多不需要的注释的大型XML,这将是乏味的。知道谁使用它的名称提取所需的元素吗?
XML的子节点本身就是SimpleXMLElements,因此您也可以在它们上调用axXml方法。
由于XML中只有一个chapters
节点,因此只需
$resultXML->chapters->asXml()
可以。
开始:
<?php
$inputXML ="
<Book>
<bookname>thename</bookname>
<chapters>
<chapter>
<name>chapter1</name>
</chapter>
<chapter>
<name>chapter2</name>
</chapter>
</chapters>
</Book>
";
/* Load from file:
$parseXML = simplexml_load_file( $fileURL );
*/
$parseXML = simplexml_load_string( $inputXML );
$chapters = $parseXML->chapters->asXML();
echo $chapters;
?>
注意:您的xml必须格式良好,目前您的<Book>
没有结束标记。