PHP SimpleXMLElement,将元素及其子元素获取为XML



假设我有以下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>没有结束标记。

相关内容

  • 没有找到相关文章

最新更新