我有两个XML文档,格式如下:
第一份文件:
<person>
<name>David</name>
</person>
第二份文件:
<person>
<name>David</name>
<hobby>Skating</hobby>
</person>
是否可以将第二个节点<hobby>Skating</hobby>
复制到第一个XML中,如果它还不存在的话?我正在使用XML :: SemanticDiff来查找差异的XPath,并使用LibXML将文本附加到该节点中所做的更改:
for my $node ($root->findnodes($path_change)) {
$root->removeChildNodes();
$node->appendText("This is a test");
}
答案 0 :(得分:2)
my ($dst_person) = $dst_root->findnodes('//person');
my ($dst_hobby) = $dst_person->findnodes('hobby');
if (!$dst_hobby) {
my ($src_hobby) = $src_root->findnodes('//person/hobby');
$dst_person->appendChild( $src_hobby->clone(1) );
}