0

我有两个格式如下的 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"); 
}
4

1 回答 1

3
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) );
}
于 2012-04-20T19:32:01.803 回答