【发布时间】:2017-03-20 14:40:41
【问题描述】:
我正在尝试制作一个 java 函数以在我的样式表中使用,该函数将根据正则表达式字符拆分字符串并返回 NodeList。
例如,我希望我的样式表是这样的:
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
version="1.0">
<xsl:template match="/">
<Root>
<xsl:copy-of select="re:splitRegex('This is my string', '\s\s+')"/>
</Root>
</xsl:template>
</xsl:stylesheet>
我希望生成的 XML 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:stash="xalan://com.nxtech.util.io.Stash">
<token>This</token>
<token>is</token>
<token>my</token>
<token>string</token>
</Root>
我的 java 代码中有这个函数,它返回一个字符串数组:
public static String[] split(String toSplit,String regex) {
return toSplit.split(regex);
}
但我需要返回 NodeList 的东西,或者任何能正确格式化我的 XML 文件的东西。
【问题讨论】:
-
您的结果看起来不像 XML。
-
抱歉,我删除了重复行。
-
重复的行不是唯一的问题,你还有一个自闭合的根元素,所有的标记标签都没有了。
-
我再次道歉,我复制并粘贴并认为这是不言自明的。我希望这可以消除任何困惑。
-
当您将 XSLT 与 Java 一起使用时,为什么不能使用 Saxon 9 和纯 XSLT/XPath 2.0 来完成这项工作,或者如果您使用 Xalan,那么它具有内置的 EXSLT 支持 xalan.apache.org/old/xalan-j/apidocs/org/apache/xalan/lib/…实现这一目标。如果您真的想在 Java 中为 Xalan 自己实现它,那么我想该 Exslt 函数的 Xalan 源代码将显示如何设置它。
标签: java regex xml xslt nodelist