假设我有以下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,这很乏味。知道谁使用其名称提取所需元素?
答案 0 :(得分:0)
我们走了:
<?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>
没有结束标记。
答案 1 :(得分:0)
XML的子节点本身就是SimpleXMLElements - 所以你也可以在它们上面调用axXml方法。
由于您的XML中只有一个chapters
节点,只需
$resultXML->chapters->asXml()
会做的。