无法使用xsl从xml获取元素的值

时间:2014-01-09 08:13:16

标签: xml xpath xslt-1.0

我有一个XML文档,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<StudentHeader>
  <student>
    <Roll>1</Roll>
    <Name>KUMAR</Name>
    <Sex>MALE</Sex>
 </student>
</StudentHeader>

`我正在使用以下XSL表:

<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/"> 
  <xsl:apply-templates select="//Roll"/> 
  <xsl:apply-templates select="//Name"/> 
  <xsl:apply-templates select="//Sex"/> 
</xsl:template>

<xsl:template match="Name"> 
 <div style="color:purple">
<xsl:text> My Name is</xsl:text> 
      <xsl:value-of select="Name"/> 
 </div> 
</xsl:template>
</xsl:stylesheet>

在输出中我收到的只有绿色格式的文字如下:我的名字是

我的问题是:我没有在xml中获得name属性的值。我可以得到它吗?

1 个答案:

答案 0 :(得分:2)

目前,您正在匹配其他<Name/>元素中的<Name/>个元素。查询当前上下文.text()节点:

<xsl:template match="Name"> 
 <div style="color:purple">
<xsl:text> My Name is</xsl:text> 
      <xsl:value-of select="."/> 
 </div> 
</xsl:template>