1

xHTML フラグメントの作成に使用する XSL スタイルシートがあります。XML には多くの情報が含まれており、特定の 1 つのセクションのみを変換したいので、次のように一致させます (これが私のトップレベル/最初の一致であることに注意してください)。

<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 に答える