使用XPath定位XML的某些部分的问题

时间:2009-04-10 09:26:49

标签: xml xslt xpath

重复

  

HOw to make the text repeat only once every for-each?

我使用XPATH指向XML中的某个元素时遇到问题。 这是我的XML代码:            

    <character>
      <name>some name </some name>
    </character>

  </quote>
 <quote>
  ....
  </quote>
 </quotes>

这里是我的XSLT代码:

<xsl:for-each select="quotes/quote">
    <xsl:value-of select="quotes/quote/character/name"/>
 </xsl:for-each>

我尝试做的是尝试列出每个引号的字符名称。 BUt这段代码不起作用 请问你帮我解决这个问题吗?谢谢

2 个答案:

答案 0 :(得分:3)

for-each内,上下文节点为quote - 所以看起来像就像你需要的那样:

<xsl:for-each select="quotes/quote">
    <xsl:value-of select="character/name"/>
</xsl:for-each>

当然,纯粹主义者会争辩说使用match会更好:

<xsl:apply-templates select="quotes/quote" />
...
<xsl:template match="quote">
    <xsl:value-of select="character/name"/>
</xsl:template>

答案 1 :(得分:0)

错误是:
您使用引号/引用两次

你可以尝试这个:

<xsl:for-each select="quotes/quote">
  <xsl:value-of select="character/name"/>
</xsl:for-each>