我能夠在XML :: Twig模塊的幫助下合併兩個XML文件數據,但在某些情況下,在兩個XML文件中都有相同標記出現的機會在這種情況下,我需要保持第一個文件的數據不變,並從第二個文件中刪除它。有人可以讓我知道如何通過XML::Twig
來實現嗎?在合併兩個XML文件時從第二個XML文件中刪除公共XML標記
下面是我使用合併兩個XML數據
首先XML數據
<config>
<tag1>A1</tag1>
<tag2>A2</tag2>
</config>
二XML數據的代碼
<config>
<tag2>A2</tag2>
<tag3>A1</tag3>
<opt>
<user login="grep" fullname="BOB" />
<user login="stty" fullname="TOM" />
</opt>
</config>
<tag2>
數據出現在這兩個文件中。我需要從第二個文件中刪除重複的數據。
代碼
use XML::Twig;
use Data::Dumper;
use XML::Simple;
print add(
'C:\Users\chidori\Desktop\inputfile1.xml',
'C:\Users\chidori\Desktop\inputfile2.xml'
);
sub add {
my $result_twig;
my ($XML_File1, $XML_File2) = @_;
foreach my $file ($XML_File1, $XML_File2) {
my $current_twig = XML::Twig->new(
pretty_print => 'indented',
comments => 'process',
);
$current_twig->parsefile($file);
if (!$result_twig) {
$result_twig = $current_twig;
}
else {
$current_twig->root->move(last_child => $result_twig->root)->erase;
}
}
return $result_twig->sprint;
}
你應該至少在嘗試免費諮詢 – Borodin
@Borodin之前自己嘗試這樣做。我在嘗試。以爲我可以在這裏得到一些指針。 – chidori
顯示您的代碼,並描述您遇到的問題以及結果與您的要求不符的原因,我們將幫助您解決問題。我會給你的第一個指針是正確縮進你的代碼,以便你可以閱讀你寫的東西。在這種情況下,我已經爲你做了這件事,但我不應該要 – Borodin