【发布时间】:2014-11-14 02:30:51
【问题描述】:
我是 xml 和 XSL 的新手,使用旧平台...
我正在寻找一种从 XPATH 创建 XML 的解决方案。正好看到这个帖子How to Generate an XML File from a set of XPath Expressions?
这对我帮助很大。
与“评论”部分下讨论的请求类似,我试图将整个 XSLT 作为字符串传递,并使用 Saxon 将结果作为刺回接收。以字符串形式接收结果,没有问题。但是当将 XSL 作为字符串传递时,它会抱怨“document()”,它是 document('')" /> 的一部分。
错误是“SXXP0003:XML 解析器报告的错误:prolog 中不允许内容。”
我的基本要求是我应该能够将 XSL(整个文件或“vPop”部分)作为字符串传递,并且应该在另一个字符串中接收结果而不涉及任何文件。这样我可以提高性能并使其具有通用性,以便我们商店中不知道如何处理 XML 的任何人仍然可以生成...
我的 java 代码看起来像..
public static String simpleTransform(final String xsltStr) {
String strResult = "";
TransformerFactory tFactory = TransformerFactory.newInstance();
String tempXMLStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<OpnXMLTAG>Dummy</OpnXMLTAG>";
try {
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
StreamSource XSLSource = new StreamSource(new StringReader(xsltStr));
Transformer transformer = tFactory.newTransformer(XSLSource );
transformer.transform(new StreamSource(new StringReader(tempXMLStr)), result);
strResult = writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return strResult;
}
我传递的 XSLT 字符串与之前的帖子相同。
【问题讨论】:
-
您确实意识到“从通过 XPath 检索的数据创建 XML”正是 XSLT 和 XQuery 的用途,对吧?
标签: java xml xslt xpath xquery