【发布时间】:2014-02-02 21:30:17
【问题描述】:
尝试了许多不同的脚本,最终得到了这个我觉得必须接近解决方案的脚本,但不确定如何定义孩子。试过“@name”和“name”。 我尝试过的所有脚本都是从这里和那里复制并修改以供我使用。
每个 XML 有 1 个节点和 1 个子节点。那么这应该不会容易得多,但没有运气。 可以提一下,我还希望合并 xsl 样式表引用,但我想我只是偶然发现了一个解决方案,但忘记为页面添加书签。
xml 1:
<?xml version="1.0" encoding="utf-8"?>
<companyroutes>
<route name="BBUPLOAD">ENGM OKSAT L996 SVD EKCH</route>
</companyroutes>
xml 2:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="merge2.xsl"?>
<companyroutes>
<route name="XXXXCORE">RUTA TULLA L666 BARE LITT MNOP</route>
</companyroutes>
还有 PHP 代码(此文件与输出文件位于同一目录中:
<?php
$doc1 = new DOMDocument();
$doc1->load('/uploads/companyroutes.xml');
$doc2 = new DOMDocument();
$doc2->load('/uploads/companyroutes_core.xml');
// get 'res' element of document 1
$res1 = $doc1->getElementsByTagName('res')->name(0);
// iterate over '@name' elements of document 2
$companyroutes2 = $doc2->getElementsByTagName('name');
for ($i = 0; $i < $companyroutes2->length; $i ++) {
$name2 = $companyroutes2->name($i);
// import/copy @name from document 2 to document 1
$name1 = $doc1->importNode($name2, true);
// append imported @name to document 1 'res' element
$res1->appendChild($name1);
}
$doc1->save('companyroutes.xml');
?>
任何指针表示赞赏。
【问题讨论】:
标签: php xml domdocument