【问题标题】:xslt 1.0 match two subsequent elementsxslt 1.0 匹配两个后续元素
【发布时间】:2014-12-17 12:29:13
【问题描述】:

我有一个带有后续元素的 XML 文件,我想在单个段落中插入这些元素

这里是 XML 格式

<root>
    <list>
        <file> 1.txt </file>
        <url> site.com </url>
        <file> 2.text </file>
        <url> mysite.com </url>
        <file> 3.gif </file>
        <url> picsite.com </url>
    </list>

</root>

我想选择每两个后续元素 所以结果会是这样的:

1.txt , site.com
2.txt, mysite.com
3.gif, picsite.com

这看起来很简单,但我没有找到任何优雅的解决方案...... 有什么建议吗?

我正在开发 XSLT 1.0 版本

【问题讨论】:

  • 匹配 &lt;file&gt; 并使用 following-sibling 轴。那应该可以。
  • 很好,现在可以使用了,谢谢!

标签: xml xslt xslt-1.0


【解决方案1】:

正如musiKk建议的那样,这应该可以工作,

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>

<xsl:template match="/">
  <xsl:for-each select="/root/list/file">
   <xsl:value-of select="normalize-space(.)"/>,  <xsl:value-of select="normalize-space(following-sibling::*)"/> 
    <xsl:text>
    </xsl:text>
  </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

【讨论】:

  • 好。我懒得从头开始创建它。我的 XSLT 也有点生疏了。 ;)
猜你喜欢
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
相关资源
最近更新 更多