xml - 如何使用xslt遍历xml

标签 xml xslt xpath

我有一个这样的xml堆栈;

<translations>
  <message1>A message</message1>
  <message2>A second message</message2>
</translations>


使用xslt和for-each方法,如何获得名称(message1,message2)和值(一条消息,第二条消息)作为键/值对?]

编辑:

我想要的输出将用于生成javascript对象,例如

<script type="text/javascript">
  var t = {
    <xsl:value-of select="name()" /> : '<xsl:value-of select="." />'
  }
</script>


显然上述方法不起作用,但这是我最初的想法...

最佳答案

<xsl:template match="/">
    <script type="text/javascript">
        <xsl:text>var t = {</xsl:text>
        <xsl:for-each select="translations/*">

            <xsl:value-of select="concat(name(), ' : ')" />
            <xsl:text>'</xsl:text>
            <xsl:value-of select="." />
            <xsl:text>'</xsl:text>
            <xsl:if test="position() != last()">
                <xsl:text>,</xsl:text>
            </xsl:if>
            <xsl:text>&#xA;</xsl:text>
        </xsl:for-each>
        <xsl:text>}</xsl:text>
    </script>
</xsl:template>


输出:

<script type="text/javascript">var t = {message1 : 'A message',
message2 : 'A second message'
}</script>

关于xml - 如何使用xslt遍历xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7385713/

相关文章:

javascript - 如何使用 Ajax + Jquery 更新 XML 文件?

c# - 如何使用 XPath 选择带有引号字符的文本?

xml - 使用 XSLT 根据 XSD 转换 XML

xslt - 如何根据另一个节点列表的内容过滤节点列表

javascript - XSLT+JavaScript : using classes

javascript - 设置一个 for 循环来填充图像 src

java - 避免在 Java 中使用 XPath 重复实例化 InputSource

javascript - libxmljs 的替代品

perl - XPath Perl 获取属性值

xml - 如果文件名中缺少 '.xml' 后缀,为什么 Chrome 会尝试下载/保存从 localhost 上的 gatsby 提供的 xml 文件,而不是在浏览器中显示?