XSL:使用模板匹配的伪输出

时间:2012-07-12 09:46:56

标签: xml xslt transform

我有一个用于创建xHTML片段的XSL样式表。 XML包含大量信息,我只想转换一个特定的部分,我这样匹配(注意这是我的顶级/第一个匹配):

<xsl:template match="root/SystemInfo/Errors">

这很有用,但是,在我的预期输出之前,我看到1001被写出来了。进一步检查后,这是我匹配的xpath "root/SystemInfo/Errors"之前的各种标签的数据。我该怎么做才能防止这种情况发生?

示例xml:

<?xml version="1.0"?>
<root>
    <Settings>
        <Enabled>1</Enabled>
        <Mode1>0</Mode1>
        <Mode2>0</Mode2>
        <Limit>1</Limit>
    </Settings>
    <SystemInfo>
        <Errors>
            <NOCONNECTION>1</NOCONNECTION>
        </Errors>
    </SystemInfo>
</root>

XML Playground setup here以显示效果。

1 个答案:

答案 0 :(得分:3)

添加

<xsl:template match="text()"/>

覆盖输出文本节点的默认模板,或确保只使用

处理您感兴趣的内容
<xsl:template match="/">
  <xsl:apply-templates select="root/SystemInfo/Errors"/>
</xsl:template>