0

我将按照此处所述将 XML 转换为 JSON 。我需要将该方法传递一个字符串,但我不知道如何将我的 XPath 结果转换为字符串。

我正在尝试[name=bar]从格式如下的 XML 文件中提取特定父元素 的所有子元素:

    <items>
        <item name="foo">
            <element>1</element>
            <element>
                <child>c1</child>        
            </element>
            <element>2</element>
        </item>
        <item name="bar">
            <element>1</element>
            <element>
                <child>c1</child>        
            </element>
            <element>2</element>
        </item>
    </items>

我可以访问我想要的节点:

    $xmlfile = simplexml_load_file('xmlfile.xml');
    $item = $productsXml->xpath('//item[@name="bar"]'); // Returns an array

我想将结果转换为字符串:

        <item name="bar">
            <element>1</element>
            <element>
                <child>c1</child>        
            </element>
            <element>2</element>
        </item>

任何帮助,将不胜感激。

4

1 回答 1

1

您可以遍历 XPath 结果,然后使用asXML()将节点作为字符串保存到变量中:

$str = ''; // initializing empty string to append to 
$item = $xmlfile->xpath('//item[@name="bar"]');
while(list(,$node) = each($item)) { // getting each node
    $str .= $node->asXML(); // save it to $str
}    
echo $str;

演示!

于 2013-10-15T10:13:12.070 回答