通过使用 xml:message 输出 xslt 中变量的完整 XML 进行调试
我有一个名为 $statuses
的变量。
我想输出完整的 XML,而不仅仅是节点中的值,因此我尝试执行以下操作:-
<xsl:message>Contents of the nodeset_statuses:-
<xsl:copy-of select="$statuses"/>
</xsl:message>
但是,这仅输出 XML 中节点中的值,这不是我想要的。我想要“原样”的 XML。我见过一些“prettyPrint”模板的示例,例如 dom4j,但说实话,它确实不应该做那么多工作。
有没有可用的Java方法调用?
我尝试了类似的方法:
<xsl:message>
<xsl:variable name="output" select="java:System.out.println('print me something')"/>
</xsl:message>
使用 XML 命名空间定义:
xmlns:java="http://xml.apache.org/xslt/java"
但这不起作用,因为它返回了错误:
System.out.println 不是 java / xslt apache 扩展的可识别部分。
有谁知道实际的Java调用是什么来实现我想要的或者实现它的方法?
提前致谢。
I have a variable called $statuses
.
I want to output the full XML, rather than just the values in the nodes, so I tried to do the following:-
<xsl:message>Contents of the nodeset_statuses:-
<xsl:copy-of select="$statuses"/>
</xsl:message>
However, this only outputs the values in the nodes in the XML which is not what I want. I want the XML "as it is". I've seen some examples of "prettyPrint" templates like with dom4j but I'll be honest it really shouldn't be that much work.
Is there any Java method call available?
I tried something like:
<xsl:message>
<xsl:variable name="output" select="java:System.out.println('print me something')"/>
</xsl:message>
With an XML namespace definition of:
xmlns:java="http://xml.apache.org/xslt/java"
But that didn't work as it returned the error:
System.out.println isn't a recognised part of the java / xslt apache extensions.
Does anyone know what the actual Java call is to achieve what I want or a way to do it?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的评论表明您正在使用 Xalan,它有一个 扩展,用于将输出写入不同的结果文档。添加
到转换的
根元素,然后您可以将变量转储到单独的文件中(我添加了一个根元素以使输出格式良好如果
$statuses
包含多个元素)。Your comment suggests you're using Xalan, which has an extension for writing output to different result documents. Add
to the
<xsl:stylesheet>
root element of your transformation, then you can useto dump the variable to a separate file (I've added a single root element to make the output well-formed if
$statuses
contains more than one element).使用 document 函数和
xsl:variable
节点集读取值:Use the document function and the
xsl:variable
nodeset to read the value: