我想比较 XML 节点(Key/ID 节点),他们看看他们的兄弟节点是否有任何不同的值,然后在输出中获取。
合并两个 XML 文件的输入 XML
<?xml version="1.0" encoding="utf-8"?>
<aggregatedData>
**<wd:Report_Data xmlns:wd="urn:report">
<wd:test>
<wd:CID>0011</wd:CID>
<wd:name>Test10</wd:name>
</wd:test>
<wd:test>
<wd:CID>20012</wd:CID>
<wd:name>Test12</wd:name>
</wd:test>
<wd:test>
<wd:CID>0014</wd:CID>
<wd:name>Test14</wd:name>
</wd:test>
</wd:Report_Data>**
* <File xmlns="urn:ExternalSource">
<Root1>
<CID>0011</CID>
<curre>INR</curre>
<name>Test1200</name>
</Root1>
<Root1>
<CID>0000</CID>
<curre>cnd</curre>
<name>Test00</name>
</Root1>
<Root1>
<CID>20012</CID>
<curre>INR</curre>
<name>Test12</name>
</Root1>
<Root1>
<CID>0010</CID>
<curre>INR</curre>
<name>why10</name>
</Root1>
</File>*
</aggregatedData>
现在在上面的输入文件中,如果比较节点只有“0011”和“20012”是常见的,但兄弟只在“0011”中不同。
对于 20012(File/Root1/CID 和 wd:Report_Data/wd:test/wd:CID),两个地方的子节点值相同。它不应该被采摘。
对于 0011(File/Root1/CID 和 wd:Report_Data/wd:test/wd:CID),subling 节点值在两个地方都不同,因此下面是输出。
<?xml version="1.0" encoding="utf-8"?>
<FinalFile>
<Root1>
<CID>0011</CID>
<curre>INR</curre>
<name>Test1200</name>
</Root1>
<FinalFile>
尝试使用 XSLT2.0 和 30 使用 xsl:accumulator 但没有运气。
请任何人在这里帮助我。谢谢!