Php 如何使用simplexml从xpath结果创建新的XML?
这是我的XML片段:Php 如何使用simplexml从xpath结果创建新的XML?,php,xml,xpath,Php,Xml,Xpath,这是我的XML片段: <foo> <bar> <id>120034</id> <name>Tom</name> </bar> <bar> <id>9088812</id> <name>Tom</name> </bar> <bar>
<foo>
<bar>
<id>120034</id>
<name>Tom</name>
</bar>
<bar>
<id>9088812</id>
<name>Tom</name>
</bar>
<bar>
<id>140034</id>
<name>Mike</name>
</bar>
</foo>
问题:如何从$results
生成新的XML
我试过了
$results->asXML();
但是我得到了一个错误,
$results
不是simplexml对象。您必须循环结果集,并对结果执行任何您想要的操作
$xml = simplexml_load_string($x); // XML assumed in $x
$results = $xml->xpath("/foo/bar[name = 'Tom']");
foreach($results as $result) echo $result->asXML();
xpath生成一个域节点列表。它不是一个xml文档本身,只是一个匹配xpath表达式的节点列表/数组。您可以从该列表中提取单个节点,并将它们转换为xml。@MarcB这是怎么做到的?
$xml = simplexml_load_string($x); // XML assumed in $x
$results = $xml->xpath("/foo/bar[name = 'Tom']");
foreach($results as $result) echo $result->asXML();