0

次の形式の2つのXMLドキュメントがあります。

最初のドキュメント:

<person> 
  <name>David</name> 
</person>

2番目のドキュメント:

<person> 
  <name>David</name> 
  <hobby>Skating</hobby> 
</person>

<hobby>Skating</hobby>その2番目のノードがまだ存在しない場合、最初の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 に答える