当子节点" number"时,我试图从xml文件中删除节点。等于0.这就是看起来像。
<deFac xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="baba_002.xsd">
<fact>
<refact>163620515-01</refact>
<date>2016-09-06</date>
<demfact>
<number>0</number>
<brut>81.46</brut>
<net>81.46</net>
</demfact>
</fact>
<fact>
<refact>163621197-02</refact>
<date>2016-09-06</date>
<demfact>
<number>11</number>
<brut>61.44</brut>
<net>61.44</net>
</demfact>
</fact>
<fact>
<refact>163621203-01</refact>
<date>2016-09-06</date>
<demfact>
<number>1</number>
<brut>4.55</brut>
<net>4.55</net>
</demfact>
</fact>
<fact>
<refact>163621198-01</refact>
<date>2016-09-06</date>
<demfact>
<number>0</number>
<brut>1.71</brut>
<net>1.71</net>
</demfact>
</fact>
</deFac>
我想要的是
<deFac xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="baba_002.xsd">
<fact>
<refact>163621197-02</refact>
<date>2016-09-06</date>
<demfact>
<number>11</number>
<brut>61.44</brut>
<net>61.44</net>
</demfact>
</fact>
<fact>
<refact>163621203-01</refact>
<date>2016-09-06</date>
<demfact>
<number>1</number>
<brut>4.55</brut>
<net>4.55</net>
</demfact>
</fact>
</deFac>
这是我试过的xslt,但它没有给我我想要的结果
首先尝试:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="fact[number = !0]"/>
</xsl:stylesheet>
第二次尝试
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="deFac/fact"/>
</xsl:copy>
</xsl:template>
<xsl:template match="deFac/fact/[demfact/number != '0']">
<xsl:copy>
<xsl:apply-templates select="@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
你知道我犯了什么错吗?我真的被封锁了,我尝试过的所有东西似乎都没有被解雇。
提前感谢您的帮助
答案 0 :(得分:2)
首次尝试时,将<xsl:template match="fact[number = !0]"/>
更改为<xsl:template match="fact[demfact/number = 0]"/>
。