0

この XSLT を適用する場合:

<xsl:template match="e">
  <xsl:value-of select="@name"/>
</xsl:template>

このxmlに:

   <root>
     <e name="1"/>
     <la>
      <e name="bla"/>
     </la> 
   </root>

「1」と「bla」の両方を取得します。

  1. これはなぜですか?
  2. XSLT がルートの直接の子にのみ適用されるようにするにはどうすればよいですか?
4

2 に答える 2

0

次のようなものも使用できます。

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

  <xsl:template match="root">
    <xsl:apply-templates select="child::e"/>
  </xsl:template>

  <xsl:template match="e">
    <xsl:value-of select="@name"/>
  </xsl:template>

</xsl:stylesheet>
于 2013-05-13T12:44:11.020 に答える