如何使用基于元素的条件删除xml节点



@Yitzhak。非常感谢你的回答。我想更新我的完整XSLT文件,希望您能继续提供帮助我有下面的xml文件,我想问如何使用XSLT根据元素PlantCode=2001的条件删除整个<MaterialCallOff>节点?

下面是当前的XSLT,但它不起作用

--Deleted due to company regulation violation 

请尝试以下XSLT。

XSLT

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="MaterialCallOff[PlantCode='2001' and Workplace='3092_GACH08S1']">
</xsl:template>
</xsl:stylesheet>

输出

<Testing xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<WholeInfo>
<MaterialCallOff>
<PlantCode>3092</PlantCode>
<PartNumber>BIW40002871</PartNumber>
<CallType>Automatic</CallType>
<Quantity>16</Quantity>
<UOM>EA</UOM>
<Workplace>3092_GACH08S1</Workplace>
</MaterialCallOff>
<MaterialCallOff>
<PlantCode>3092</PlantCode>
<PartNumber>BIW40002872</PartNumber>
<CallType>Automatic</CallType>
<Quantity>14</Quantity>
<UOM>EA</UOM>
<Workplace>3092_GACH08S1</Workplace>
</MaterialCallOff>
</WholeInfo>
</Testing>

最新更新