以节点集作为外部参数的XSLT

时间:2011-04-06 16:46:50

标签: java xslt

我正在将XML节点传递给我的JAVA转换器:

transformer.setParameter("orset", qRes);

qRes的内容与此类似:

<DOCTYPES>
    <SUBTYPE>Passport</SUBTYPE>
    <DOCTYPE>Proof of identity</DOCTYPE>
</DOCTYPES>
<DOCTYPES>
    <SUBTYPE>Driving License</SUBTYPE>
    <DOCTYPE>Proof of address</DOCTYPE>
</DOCTYPES>

我在我的XSL文件中声明了一个全局参数:

<xsl:param name="orset"/>

我可以从参数中访问特定值,如下所示:

<xsl:for-each SELECT="$orset/DOCTYPES">
<xsl:value-of select="$orset/DOCTYPES/DOCTYPE"/>
...

或者这样做的正确方法是什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您最好使用eXslt节点设置功能...

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
  extension-element-prefixes="exsl"
  version="1.0">
 ...
 <xsl:value-of select="exsl:node-set($orset)/DOCTYPES"/>
  ...
</xsl:stylesheet>

根据您的处理器等,还有其他可用的节点设置功能,它们都列在下面的参考中。

http://www.xml.com/pub/a/2003/07/16/nodeset.html