PHP 过滤 XML xpath 并导出图像
PHP filter XML xpath and export image
我有一个 xml 导出需要在导入之前进行过滤。
所以我写了加载、过滤和保存的代码。
$xml = simplexml_load_file('test.xml');
$nodes = $xml->xpath('/nodes/node[ ... condition ... ]');
$nodes->asXML('filtred.xml');
但是我看到 asXML()
是一个 SimpleXMLElement::function
并且它是 SimpleXMLElement
个元素的对象。
如何将所有 $nodes
分组到一个通用 SimpleXMLElement
元素中以在其上使用 asXML()
?
原来的XML结构是:
<nodes>
<node>
<Titolo>Acquisti</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
...
</nodes>
基于SimpleXML: append one tree to another,您的结果是一个节点列表,这些节点必须由根元素包裹,您可以在其上调用asXml
$xmlIn = '
<nodes>
<node>
<Titolo>Acquisti</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
<node>
<Titolo>Acquisti 2</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
<node>
<Titolo>Acquisti 2</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
</nodes>
';
$xml = simplexml_load_string($xmlIn);
$nodes = $xml->xpath('/nodes/node');
$xmlOut = new SimpleXMLElement('<nodes></nodes>');
$domOut = dom_import_simplexml($xmlOut);
foreach ($nodes as $n) {
$tmp = dom_import_simplexml($n);
$tmp = $domOut->ownerDocument->importNode($tmp, TRUE);
$domOut->appendChild($tmp);
}
$xmlOut->asXML('filtred.xml');
我有一个 xml 导出需要在导入之前进行过滤。
所以我写了加载、过滤和保存的代码。
$xml = simplexml_load_file('test.xml');
$nodes = $xml->xpath('/nodes/node[ ... condition ... ]');
$nodes->asXML('filtred.xml');
但是我看到 asXML()
是一个 SimpleXMLElement::function
并且它是 SimpleXMLElement
个元素的对象。
如何将所有 $nodes
分组到一个通用 SimpleXMLElement
元素中以在其上使用 asXML()
?
原来的XML结构是:
<nodes>
<node>
<Titolo>Acquisti</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
...
</nodes>
基于SimpleXML: append one tree to another,您的结果是一个节点列表,这些节点必须由根元素包裹,您可以在其上调用asXml
$xmlIn = '
<nodes>
<node>
<Titolo>Acquisti</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
<node>
<Titolo>Acquisti 2</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
<node>
<Titolo>Acquisti 2</Titolo>
<Corpo></Corpo>
<Nid>450</Nid>
</node>
</nodes>
';
$xml = simplexml_load_string($xmlIn);
$nodes = $xml->xpath('/nodes/node');
$xmlOut = new SimpleXMLElement('<nodes></nodes>');
$domOut = dom_import_simplexml($xmlOut);
foreach ($nodes as $n) {
$tmp = dom_import_simplexml($n);
$tmp = $domOut->ownerDocument->importNode($tmp, TRUE);
$domOut->appendChild($tmp);
}
$xmlOut->asXML('filtred.xml');