html - XSLT:for-each 循环只给出第一个 alinea
问题描述
我需要使用 XSLT 将 xml 文件转换为 html 文件。现在我已经尝试了一切,但似乎没有用。我想在每个 alinea 之后创建一条白线。
XML 代码:
<alinea>
Willen wij daadkrachtig het economisch herstel vorm kunnen geven, dan
is stabiel bestuur gewenst. Intensief wordt sinds de
<organisatie> Tweede Kamer</organisatie>
-verkiezingen van
<datum>9 juni</datum>
gewerkt aan de totstandkoming van een nieuw kabinet. Lopende de
kabinetsformatie past het huidige kabinet terughoudendheid bij het doen
van beleidsvoorstellen voor het komende jaar.
</alinea>
然后是很多这样的标签。
XSLT 代码:
<xsl:template match="troonrede">
<xsl:for-each select="troonrede/alinea">
<xsl:value-of select="troonrede/alinea"/><br/>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>
我希望你能帮帮我!
解决方案
您尚未troonrede
在 XML 中显示该元素,但假设它是alinea
模板的父级,则应如下所示...
<xsl:template match="troonrede">
<xsl:for-each select="alinea">
<xsl:value-of select="."/>
<br/>
</xsl:for-each>
</xsl:template>
这是因为在模板匹配troonrede
中,您将定位在该元素上,因此您xsl:for-each
可以相对于该当前节点。并且类似地在 中xsl:for-each
,当前节点是 then alinea
,所以这样做.
会获取当前节点的值。(Doing<xsl:value-of select="alinea"/>
会寻找同一节点的子节点,而该子节点不存在。)
推荐阅读
- r - 如何使用循环删除数据框中的列?
- dart - Flutter:从两个有状态的小部件传递数据
- angular - Angular Material:输入清除按钮图标布局失败
- javascript - 在firebase中组合数组以循环javascript
- java - pom.xml grunt 任务错误无法运行任务(com.github.eirslett:frontend-maven)
- java - 从 JMS 消息中获取命名空间名称
- sql-server - 删除触发器上的 SQL Server 没有做我期望的事情
- docker - Jenkins Docker 按需安装
- html - 将 HTML 表单移至 Django 2.1
- javascript - 具有自定义行的角材料表