我是一个带有xml和XSL的新蜜蜂,与传统平台一起工作...
我正在寻找一种解决方案来从XPATH创建XML。发生了看到这个职位How to Generate an XML File from a set of XPath Expressions? 这帮了我很多。
与“评论”部分中讨论的请求类似,我试图将整个XSLT作为字符串传递,并使用Saxon接收结果作为反馈。以字符串形式接收结果,没有问题。但是,当将XSL作为字符串传递时,它会抱怨“document()”,它是< xsl:variable name =“vStylesheet”select =“”document('')“/>的一部分。
错误是“SXXP0003:XML解析器报告的错误:内容不被允许在prolog中。” 我的基本要求是我应该能够将XSL(整个文件或“vPop”部分)作为字符串传递,并且应该以另一个字符串的形式接收结果而不涉及任何文件。这样我可以提高性能,并使其通用的,所以,任何人都在我们的商店,谁不知道如何处理XML仍然可以产生一个...从XPATH创建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的用处,对吗? – keshlam