2

XSLT プロセッサ ノードの方法について混乱しています。次のような XML Doc があるとします。

<object>
        <animal>
                <man men="asd">man1</man>
                <man>man2</man>
                <man>man3</man>
                <man>man4</man>
                <cat>cat1</cat>
                <cat>cat2</cat>
                <cat>cat3</cat>
                <cat>cat4</cat>
        </animal>
        <vehicule>
                <car>car1</car>
                <car>car2</car>
                <car>car3</car>
                <car>car4</car>
        </vehicule>
</object>

以下のようなテンプレート マッチングのない XSLT がある場合、すべてのテキスト ノードが返され、属性ノードは返されません。問題ありません。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
</xsl:stylesheet>

しかし、以下のようなものがある場合、何も返されません。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:template match="object">
        </xsl:template>
</xsl:stylesheet>

親ノードの明示的なテンプレートがある場合、親ノードのすべての子ノードの明示的なテンプレートが必要ですか?

4

3 に答える 3

6

表示されているのは、ノードのテキスト値を出力し、そのすべての子にテンプレートを適用する組み込みルールの効果です。

組み込みのテンプレートを上書きすると、テンプレートが有効になります。のすべての子に組み込みの規則を適用objectします。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="object">
    <xsl:apply-templates select="*" />
  </xsl:template>
</xsl:stylesheet>
于 2013-01-04T22:52:17.727 に答える
1

#2のルールは何もしないと言っているので、何もしませんでした。あなたはそこに何かを書く必要があります。xsl:copyおよびを参照してくださいxsl:apply-templates

于 2013-01-04T22:55:34.303 に答える