XSL中有更新全局变量的方法吗?在XSL中更新变量
我想检查我已经转换的元素并采取相应的行动。这需要我以某种方式将元素的名称添加到某种列表中,并在每次转换新元素时更新它。
但是由于xsl:variable
在人们所期望的意义上不是“可变的”,所以一旦它被定义,我就无法向它添加任何东西。
我有多个包含的数据文件,所以使用只知道当前节点集的xsl函数将无济于事。
==编辑==
这就是我的转换现在看起来像。但它会包含每次在不同子文件中重复引用的文件。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- include the contents of referenced files -->
<xsl:template match="reference">
<xsl:apply-templates select="document(@url)/data/node()" />
</xsl:template>
</xsl:transform>
而数据文件将是这个样子:
<data>
<reference url="another_data_file.xml"/>
... other stuff ...
</data>
如果不知道更多关于您要做什么的细节,很难给出建议。可能你并没有试图通过“XSLT方式”解决问题。也许你可以发布一个最小的输入和输出文档? – 2010-05-04 10:17:30
嘿,你绝对没有在这里定义一个问题。请指出你的问题!这是一个定义不明的问题的例子。 – 2010-05-04 13:15:32
第一句话中的问题如何? – Stroboskop 2010-05-04 13:27:32