如果我有這樣的XML文件中的XML是相同的:刪除刪除節點的地方是相似的不完全使用XSLT
<root>
<node id="a">
<section id="a_1">
<item id="0">
<attribute>
<color>Red</color>
</attribute>
</item>
</section>
<section id="a_2">
<item id="0">
<attribute>
<color>Red</color>
</attribute>
</item>
</section>
</node>
<node id="b">
<section id="b_1">
<user id="b_1a">
<attribute>
<name>John</name>
</attribute>
</user>
<user id="b_1b">
<attribute>a</attribute>
</user>
</section>
<section id="b_1" method="create">
<user id="b_1a">
<attribute>
<name>John</name>
</attribute>
</user>
<user id="b_1c">
<attribute>a</attribute>
</user>
</section>
<section id="b_2">
<user id="b_1a">
<attribute>
<name>John</name>
</attribute>
</user>
</section>
</node>
</root>
,我想輸出是這樣的:
<root>
<node id="a">
<section id="a_1">
<item id="0">
<attribute>
<color>Red</color>
</attribute>
</item>
</section>
<section id="a_2">
<item id="0">
<attribute>
<color>Red</color>
</attribute>
</item>
</section>
</node>
<node id="b">
<section id="b_1">
<user id="b_1a">
<attribute>
<name>John</name>
</attribute>
</user>
<user id="b_1b">
<attribute>a</attribute>
</user>
</section>
<section id="b_1" method="create">
<user id="b_1c">
<attribute>a</attribute>
</user>
</section>
<section id="b_2">
<user id="b_1a">
<attribute>
<name>John</name>
</attribute>
</user>
</section>
</node>
</root>
正如我們可以看到,只要id是相同的,它將被視爲一個部分ID,即使它有其他方法。因此,我們在第二部分ID(b_1)中刪除具有「方法創建」的用戶標識(b_1a)。 這真的讓我感到沮喪,我一直無法忽略該方法。 所以任何幫助將不勝感激。 如果我們看看部分ID b_2,它也有相同的用戶ID b_1和相同的'約翰',但我們不刪除它,因爲它在不同的部分ID。 所以基本上我們會根據部分ID進行比較。
PS:元素可以是任何不總是用戶或節,但只要id是相同的。
非常感謝。
親切的問候, 約翰
是的,我正在使用 但它可以只消除不基於部分ID的相同用戶標識 –
John
2012-04-17 04:20:26
您的預期XML是否正確,因爲它包含兩個**用戶**元素,它們的ID均爲** b_1a **?你在你的問題中建議他們是重複的,即使他們有額外的'屬性' – 2012-04-17 06:31:38
對不起,我修改了它的問題使其更清晰。重點是所有內容都將根據部分ID進行查看。如果section id是相同的(不管它是否有方法),我們查看該section id的子節點,並查看是否存在重複屬性,如果存在我們刪除第二節id(使用方法)中的用戶標識。希望這會消除混淆。乾杯。 – John 2012-04-17 07:37:09