我将按照此处所述将XML转换为JSON。我需要向该方法传递一个字符串,但我无法弄清楚如何将我的 XPath 结果转换为字符串。
我正在尝试从格式如下的XML文件中提取特定父元素[name=bar]
的所有子元素:
<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>
任何帮助将不胜感激。
您可以循环访问 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;
演示!