XSLT 1.0:根据条件删除 ITEM
XSLT 1.0: To remove ITEM based on condition
专家们,我需要编写XSLT 1.0代码来删除IT_EPC_LIST下的ITEM,当EPC=(00)时,所有其他的ITEM必须原样传递。
我附上了示例输入和输出,如下所示。请检查。
输入:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:AIF xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<IT_ATTRIBUTES>
<item>
<NAME>check</NAME>
<VALUE>T</VALUE>
</item>
</IT_ATTRIBUTES>
<IT_EPC_LIST>
<item>
<PARENT_EPC/>
<EPC>(01)0541378700</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(00)</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000169</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000180</EPC>
</item>
</IT_EPC_LIST>
<IV_BATCH/>
<IV_TEST_RUN/>
</ns1:AIF>
** 期望输出:**
<?xml version="1.0" encoding="UTF-8"?>
<ns1:AIF xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<IT_ATTRIBUTES>
<item>
<NAME>check</NAME>
<VALUE>T</VALUE>
</item>
</IT_ATTRIBUTES>
<IT_EPC_LIST>
<item>
<PARENT_EPC/>
<EPC>(01)0541378700</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000169</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000180</EPC>
</item>
</IT_EPC_LIST>
<IV_BATCH/>
<IV_TEST_RUN/>
</ns1:AIF>
** 我使用的 XSLT 如下:**
<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="IT_EPC_LIST[ not(.// EPC)]"/>
</xsl:stylesheet>
此 XSLT 未按要求删除 ITEMS,您能否在此提供帮助..
我想你想要的模板是这样的:
<xsl:template match="IT_EPC_LIST/item[EPC='(00)']"/>
专家们,我需要编写XSLT 1.0代码来删除IT_EPC_LIST下的ITEM,当EPC=(00)时,所有其他的ITEM必须原样传递。
我附上了示例输入和输出,如下所示。请检查。
输入:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:AIF xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<IT_ATTRIBUTES>
<item>
<NAME>check</NAME>
<VALUE>T</VALUE>
</item>
</IT_ATTRIBUTES>
<IT_EPC_LIST>
<item>
<PARENT_EPC/>
<EPC>(01)0541378700</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(00)</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000169</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000180</EPC>
</item>
</IT_EPC_LIST>
<IV_BATCH/>
<IV_TEST_RUN/>
</ns1:AIF>
** 期望输出:**
<?xml version="1.0" encoding="UTF-8"?>
<ns1:AIF xmlns:ns1="urn:sap-com:document:sap:rfc:functions">
<IT_ATTRIBUTES>
<item>
<NAME>check</NAME>
<VALUE>T</VALUE>
</item>
</IT_ATTRIBUTES>
<IT_EPC_LIST>
<item>
<PARENT_EPC/>
<EPC>(01)0541378700</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000169</EPC>
</item>
<item>
<PARENT_EPC/>
<EPC>(01)0541378(21)1000180</EPC>
</item>
</IT_EPC_LIST>
<IV_BATCH/>
<IV_TEST_RUN/>
</ns1:AIF>
** 我使用的 XSLT 如下:**
<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="IT_EPC_LIST[ not(.// EPC)]"/>
</xsl:stylesheet>
此 XSLT 未按要求删除 ITEMS,您能否在此提供帮助..
我想你想要的模板是这样的:
<xsl:template match="IT_EPC_LIST/item[EPC='(00)']"/>