Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用xslt迭代xml_Xml_Xslt_Xpath - Fatal编程技术网

如何使用xslt迭代xml

如何使用xslt迭代xml,xml,xslt,xpath,Xml,Xslt,Xpath,我有这样一个xml堆栈 <translations> <message1>A message</message1> <message2>A second message</message2> </translations> 信息 第二条信息 使用xslt和for-each方法,如何将名称(message1、message2)和值(一条消息、第二条消息)作为键/值对获取?] 编辑: 我想要的输出将用于生成java

我有这样一个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>

变量t={
: ''
}
显然,上述方法不起作用,但这是我最初的想法…

您可以尝试以下方法:

<xsl:template match="translations">
  <xsl:for-each select="*">
    <kvp key="{name()}" value="{.}"/>
  </xsl:for-each>
</xsl:template>


变量t={
'
'
,

;
}
输出:

<script type="text/javascript">var t = {message1 : 'A message',
message2 : 'A second message'
}</script>
var t={message1:'A message',
信息2:'第二条信息'
}

这几乎适用于我,但是'var t={'和'};'需要放置在循环之外。另外,如何确定我是否位于最后一个节点,以便可以省略逗号(,)?
<script type="text/javascript">var t = {message1 : 'A message',
message2 : 'A second message'
}</script>