【问题标题】:XSL, issue with getting xsl:value-of inside a for-eachXSL,在 for-each 中获取 xsl:value-of 的问题
【发布时间】:2012-09-13 15:51:07
【问题描述】:

我有一个包含不同节点的 XML:

<INFORME>
  <Assignatura>
     <Nom_materia>Física</Nom_materia>
  </Assignatura>
  <Assignatura>
     <Nom_materia>Informàtica</Nom_materia>
  </Assignatura>
</INFORME>

并且,在for-each 内部,我想访问前一个节点。 我想做这样的事情,逻辑上它不起作用。

<xsl:for-each select="Assignatura">
  <xsl if text="Nom_materia = Assignatura[position()-1]/Nom_materia">
    do something...
....

我认为这将是一件非常简单的事情,但我不知道具体该怎么做。

【问题讨论】:

    标签: xml xslt foreach value-of


    【解决方案1】:

    假设你的上下文节点是 INFORME:

    <xsl:for-each select="Assignatura">
      <xsl:if test="Nom_materia = preceding-sibling::Assignatura[1]/Nom_materia">
        do something...
      </xsl:if>
    </xsl:for-each>
    

    【讨论】:

    • 谢谢拉法齐兹;但是,我不知道我从前面的兄弟姐妹那里得到了什么;似乎是随机的“nom_materia”;但是: for-each 已排序: 这可能会影响吗?谢谢!
    • 嗯,前兄弟轴将获取当前节点之前的节点在树中,而不是在每个顺序中。在迭代中查找上一项是另一回事,我认为这需要您首先创建一个包含有序元素的变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2011-10-30
    • 2012-10-11
    • 1970-01-01
    • 2016-04-09
    相关资源
    最近更新 更多