1

我有一个用于创建 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以显示效果。

4

1 回答 1

3

添加

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

覆盖默认模板输出文本节点或确保只处理您感兴趣的内容

<xsl:template match="/">
  <xsl:apply-templates select="root/SystemInfo/Errors"/>
</xsl:template>
于 2012-07-12T10:17:56.347 回答