Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用simplexml从xpath结果创建新的XML?_Php_Xml_Xpath - Fatal编程技术网

Php 如何使用simplexml从xpath结果创建新的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>

这是我的XML片段:

<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();