为了进行测试,我在样式表中使用了以下几行
<xsl:for-each select="//*[@type='Usage']/@name">
<xsl:value-of select="." separator="', '"/>
</xsl:for-each>但是…的产出
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);是带有逗号的字符串。
发布于 2015-07-27 17:29:02
我想你只是想要<xsl:value-of select="//*[@type='Usage']/@name" separator=", "/>而不是
<xsl:for-each select="//*[@type='Usage']/@name">
<xsl:value-of select="." separator="', '"/>
</xsl:for-each>因为后者显然永远不会输出分隔符,因为在value-of的for-each中有一个确保.是value-of的单一项的.。
http://xsltransform.net/6qVRKx4在线示例输出输入示例的name 1, name 3
<root>
<foo type="Usage" name="name 1"/>
<foo type="Nonsense" name="name 2"/>
<foo type="Usage" name="name 3"/>
</root>发布于 2015-07-27 14:33:09
JAXP是一个接口,而不是一个实现;它包括模式处理、XPath处理以及XSLT处理。
JAXP转换接口有几种实现,包括JDK中内置的XSLT处理器、来自Apache的Xalan-J产品的两个版本、Oracle XSLT处理器和Saxon。其中唯一支持XSLT2.0的是Saxon。
https://stackoverflow.com/questions/31649838
复制相似问题