我试图将一个文档中的节点添加到我创建的新文档中,但它不起作用,我不知道为什么。这是出错的代码:
my ($body_node) = $newdoc->findnodes('//body');
my @nodes = $source_doc->findnodes('//div[starts-with(@psname, "xyz")]');
foreach my $node(@nodes) {
$body_node = $body_node->appendChild($node);
}
$newdoc->toFile($outfile);
该代码查找一些命名的div标记,并将它们附加到body标记中。问题是它将它们附加到最后一个div标记,而不是body标记,所以我最终得到了一堆嵌套的div:
</div></div></div></div></div></div></div></div></div></div></div></div>
</div></div></div></div></div></div></div></div></div></div></div></div></body></html>
如果有人能告诉我我做错了什么,我将永远感激。
这意味着您可能需要在添加<div>
:之后返回<body>
my ($body_node) = $newdoc->findnodes('//body');
my @nodes = $source_doc->findnodes('//div[starts-with(@psname, "xyz")]');
foreach my $node(@nodes) {
$body_node = $body_node->appendChild($node);
($body_node) = $newdoc->findnodes('//body');
}
open (OUT, ">$outfile");
print OUT $newdoc->toString();
close OUT;