首先,我很遗憾地说“删除重复节点并没有按预期的方式工作”,即使我提到了多个线程,这些线程在一定程度上有所帮助,但我仍然没有达到我期望的解决方案。
简而言之,如果我的供应商和 origin_country_id 在以下后代中相同,我想删除 XitemSup 复杂类型元素。
下面是xslt代码
<xsl:stylesheet version="1.0" exclude-result-prefixes="xsl xsd ns3"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns3="http://xmlns.oracle.com/TSS_to_RMS/RIBXItemProcess/Supplier">
<xsl:template match="/">
<ns3:XItemSupDesc>
<xsl:for-each select="//ns3:XItemSupDesc/ns3:XitemSup">
<xsl:if test="not(ns3:supplier=following::ns3:supplier) or not(ns3:origin_country_id=following::ns3:origin_country_id)">
<ns3:XitemSup>
<ns3:supplier>
<xsl:value-of select="./ns3:supplier"/>
</ns3:supplier>
<ns3:primary_supp_ind>
<xsl:value-of select="./ns3:primary_supp_ind"/>
</ns3:primary_supp_ind>
<ns3:origin_country_id>
<xsl:value-of select="./ns3:origin_country_id"/>
</ns3:origin_country_id>
<ns3:primary_country_ind>
<xsl:value-of select="./ns3:primary_country_ind"/>
</ns3:primary_country_ind>
<ns3:unit_cost>
<xsl:value-of select="./ns3:unit_cost"/>
</ns3:unit_cost>
</ns3:XitemSup>
</xsl:if>
</xsl:for-each>
</ns3:XItemSupDesc>
</xsl:template>
</xsl:stylesheet>
但是如果我在下面的 xml 上申请它就不起作用
<XItemSupDesc xmlns:ns2="http://xmlns.oracle.com/TSS_to_RMS/RIBXItemProcess/Supplier" xmlns="http://xmlns.oracle.com/TSS_to_RMS/RIBXItemProcess/Supplier">
<ns2:XitemSup>
<ns2:supplier>101018</ns2:supplier>
<ns2:primary_supp_ind>N</ns2:primary_supp_ind>
<ns2:origin_country_id>CA</ns2:origin_country_id>
<ns2:primary_country_ind>N</ns2:primary_country_ind>
<ns2:unit_cost>6</ns2:unit_cost>
</ns2:XitemSup>
<ns2:XitemSup>
<ns2:supplier>102825</ns2:supplier>
<ns2:primary_supp_ind>N</ns2:primary_supp_ind>
<ns2:origin_country_id>IN</ns2:origin_country_id>
<ns2:primary_country_ind>N</ns2:primary_country_ind>
<ns2:unit_cost>13</ns2:unit_cost>
</ns2:XitemSup>
<ns2:XitemSup>
<ns2:supplier>102825</ns2:supplier>
<ns2:primary_supp_ind>N</ns2:primary_supp_ind>
<ns2:origin_country_id>IN</ns2:origin_country_id>
<ns2:primary_country_ind>N</ns2:primary_country_ind>
<ns2:unit_cost>24</ns2:unit_cost>
</ns2:XitemSup>
</XItemSupDesc>
我希望有人可以让我知道 XSLT 代码哪里出错了。