Xslt中属性的访问方法总结

访问属性的方法和访问元素的方法是一样的。注意属性名前面有个"@"符号

XML源码
<source>

<dog name="Joe">
     <data weight="18 kg" color="black"/>
</dog>

</source>

输出
<p>
  <b>Dog: </b>Joe</p>
<p>
  <b>Color: </b>black</p>

用HTML察看

Dog: Joe

Color: black

XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="dog">
     <p>
          <b>
               <xsl:text>Dog: </xsl:text>
          </b>
          <xsl:value-of select="@name"/>
     </p>
     <p>
          <b>
               <xsl:text>Color: </xsl:text>
          </b>
          <xsl:value-of select="data/@color"/>
     </p>
</xsl:template>


</xsl:stylesheet>


属性和元素的处理方法是一样的。

XSLT stylesheet 1

XML源码
<source>

<employee id="js0034"> Joe Smith </employee>

</source>

输出
Joe Smith
[<b>
  <i>js0034</i>
</b>]

用HTML察看
Joe Smith [ js0034 ]
XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="employee">
     <xsl:value-of select="."/>
     <xsl:text>[</xsl:text>
     <xsl:apply-templates select="@id"/>
     <xsl:text>]</xsl:text>
</xsl:template>

<xsl:template match="@id">
     <b>
          <i>
               <xsl:value-of select="."/>
          </i>
     </b>
</xsl:template>


</xsl:stylesheet>

你也可以通过是否包含某些属性值来选择元素。 XSLT stylesheet 1 选择了,而 XSLT stylesheet 2 排除了那些包含特定属性的元素。

XSLT stylesheet 1

XML源码
<source>

<car id="a234" checked="yes"/>
<car id="a111" checked="yes"/>
<car id="a005"/>

</source>

输出
<p>Car: a234</p>

<p>Car: a111</p>

用HTML察看

Car: a234

Car: a111

XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="car[@checked]">
     <p>
          <xsl:text>Car: </xsl:text>
          <xsl:value-of select="@id"/>
     </p>
</xsl:template>


</xsl:stylesheet>



XSLT stylesheet 2

XML源码
<source>

<car id="a234" checked="yes"/>
<car id="a111" checked="yes"/>
<car id="a005"/>

</source>

输出
<p>Car: a005</p>

用HTML察看

Car: a005

XSLT stylesheet
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="car[not(@checked)]">
     <p>
          <xsl:text>Car: </xsl:text>
          <xsl:value-of select="@id"/>
     </p>
</xsl:template>


</xsl:stylesheet>
posted @ 2007-10-18 10:51  PointNet  阅读(2894)  评论(0编辑  收藏  举报