比较文件与键/ ID节点,如果差异在兄弟节点中则生成输出

问题描述 投票:0回答:0

我想比较 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 但没有运气。

请任何人在这里帮助我。谢谢!

xslt xslt-2.0 xslt-3.0 xslt-grouping
© www.soinside.com 2019 - 2024. All rights reserved.