嗨,我正在解析一个xml feed到一个数组,它的工作正常,但直到现在我只有一个xml feed但现在我有点卡在一点因为我需要将多个xml组合成一个然后解析整个xml到数组.在这里我提供一些示例代码我想要的实际内容.
Corporate1
Permanent1XML2
Corporate2
Permanent2XML3
Corporate3
Permanent3合并我想要的XML作为输出
Corporate1
Permanent1Corporate2
Permanent2Corporate3
Permanent3到目前为止,我已经尝试了下面的代码,它对我有用,但需要花费太多时间来生成组合output.xml.有没有其他方法可以通过更好的解决方案实现这一目标.
function simplexml_merge(SimpleXMLElement &$xml1, SimpleXMLElement $xml2) {
// convert SimpleXML objects into DOM ones
$dom1 = new DomDocument('1.0', 'UTF-8');
$dom2 = new DomDocument('1.0', 'UTF-8');
$dom1->loadXML($xml1->asXML());
$dom2->loadXML($xml2->asXML());
// pull all child elements of second XML
$xpath = new domXPath($dom2);
$xpathQuery = $xpath->query('/*/*');
for ($i = 0; $i < $xpathQuery->length; $i++) {
// and pump them into first one
$dom1->documentElement->appendChild(
$dom1->importNode($xpathQuery->item($i), true));
}
$xml1 = simplexml_import_dom($dom1);
}
$xml1 = simplexml_load_file("xml1.xml", 'SimpleXMLElement', LIBXML_NOCDATA);
$xml2 = simplexml_load_file("xml2.xml", 'SimpleXMLElement', LIBXML_NOCDATA);
simplexml_merge($xml1, $xml2);
$xml1->asXml('output.xml');
请告诉我实现这一目标的最佳方法是什么.
在此先感谢,非常感谢.