我转换下面的XML为JSON对象的数组用XSLT 1.0特定值的孩子最后一个(或第一)节点:检查是否与具有
<a id="x">
<active>Yes</active>
</a>
<a id="y">
<active>No</active>
</a>
<a id="z">
<active>Yes</active>
</a>
我只想用“一个“的”主动“为”是“。到目前为止好,我使用的是:
<xsl:if test="contains(active/node(), 'Yes')">
现在的问题是,我需要输出逗号在每个月底对象,像这样:
[
{"id": "x"},
{"id": "y"},
{"id": "z"}
]
我可以检查节点最后加上:
<xsl:if test="position()!=last()">,</xsl:if>
但是,如果最后一个节点“活动”设置为“无”,前一个将输出一个逗号,因为它不是最后一个兄弟姐妹,所以我将有:
[
{"id": "x"},
{"id": "y"},
]
这是无效的json ..有没有人有一个想法如何解决这个问题?基本上我需要检查当前节点是否是最后一个孩子“活跃”设置为“是”。另外,我可以做相反的事,并在节点的开始处输出逗号,除非这是我正在写的第一个节点..但是因为我不能更改变量的值(严重的是,为什么他们甚至称它们为变量在xslt?..anyway),它有点让我回到我的主要问题再次..
谢谢!
完美!谢谢你,那更好:)我实际上已经想过这样做,但不知道如何选择它,并且不知道仅涉及选定列表的那些函数 – 2014-10-17 14:21:49