Tag: xslt

以编程方式创建xslt文件

我知道我可以通过在java中使用DOM api以编程方式创建xml文件,如下所示: DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.newDocument(); Element rootElement = document.createElement(“map”); document.appendChild(rootElement); Element em = document.createElement(“string”); em.setAttribute(“name”, “FirstName”); …. 但是有没有API构建一个xslt树? (例如像Dom这样的api) 我需要像这样的东西: Good Morning, ! 和: 提前致谢。

java xslt教程

任何人都可以用java教程建议好的XSLT吗?

Java 6中对xinclude的默认支持?

我在我的应用程序中看到,在我的解析XML文件中包含xinclude在我的Java XSLT转换中不起作用。 但是,虽然我这样做: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setXIncludeAware(true); 我没有专门设置变换器工厂,因为System.getProperty(“javax.xml.transform.TransformerFactory”)返回“null”。 我的问题:默认的Java(1.6或6)是否支持xinclude,还是我必须添加替代的XSLT解析器,例如Apache Xerces?

如何在Java中使用XML创建PDF?

目前,我正在用Java创建一个XML文件,并通过使用XSL / XSLT转换它在JSP页面中显示它。 现在我需要获取该XML文件并在PDF中显示相同的信息。 有没有办法通过使用某种XSL文件来做到这一点? 我见过iText Java-PDF库,但我找不到任何方法可以将它与XML和样式表一起使用。 任何援助将不胜感激。 提前致谢!

Xpath转换在java中不起作用

这是我的xml文档。 我想使用xml签名仅签署userID部分。 我正在使用xpath转换来选择该特定元素。 xyz text http://localhost:8080/saml/SProvider.jsp 我使用以下代码添加转换: transformList.add(exc14nTransform); transformList.add(fac.newTransform(Transform.XPATH, new XPathFilterParameterSpec(“samlp:AuthnRequest/UserID xmlns:samlp=\”urn:oasis:names:tc:SAML:2.0:protocol\””))); 但我得到以下内容: Original Exception was javax.xml.transform.TransformerException: Extra illegal t okens: ‘xmlns’, ‘:’, ‘samlp’, ‘=’, ‘”urn:oasis:names:tc:SAML:2.0:protocol”‘ 所以,我尝试删除xmlns部分。 transformList.add(fac.newTransform(Transform.XPATH, new XPathFilterParameterSpec(“samlp:AuthnRequest/UserID”))); 但它签署了整个文件并给出了以下信息: com.sun.org.apache.xml.internal.security.utils.CachedXPa thFuncHereAPI fixupFunctionTable INFO: Registering Here function 问题是什么? 编辑 正如@JörnHorstmann所说,这个消息只是一个日志或类似的东西。 现在的问题是,即使在给出xpath查询之后,整个文档也会被签名而不仅仅是UserID。 我通过在签署文档后更改元素的值来确认这一点。 结果是文档没有得到validation(如果它只签署了UserID部分,那么对所做的任何更改都应该产生有效的签名。)

加载XSLT文件时解析相对路径

我需要使用Apache FOP进行XSL转换,我有这样的代码: //Setup FOP Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out); //Setup Transformer Source xsltSrc = new StreamSource(new File(xslPath)); Transformer transformer = tFactory.newTransformer(xsltSrc); //Make sure the XSL transformation’s result is piped through to FOP Result res = new SAXResult(fop.getDefaultHandler()); //Setup input Source src = new StreamSource(new File(xmlPath)); //Start the transformation and rendering process transformer.transform(src, res); 其中xslPath是存储我的XSLT文件的路径。 我已经确认它只有一个XSLT文件时才有效,但是在我的项目中,我将事物分成了几个XSLT文件,并用标签加入它们。 […]

Java中的高效XSLT管道(或将结果重定向到源)

我有一系列相互馈送的XSL 2.0样式表,即样式表A的输出馈送B馈送C. 这样做最有效的方法是什么? 重新提出的问题是:如何有效地将一个转换的输出路由到另一个转换。 这是我的第一次尝试: @Override public void transform(Source data, Result out) throws TransformerException{ for(Transformer autobot : autobots){ if(autobots.indexOf(autobot) != (autobots.size()-1)){ log.debug(“Transforming prelim stylesheet…”); data = transform(autobot,data); }else{ log.debug(“Transforming final stylesheet…”); autobot.transform(data, out); } } } private Source transform(Transformer autobot, Source data) throws TransformerException{ DOMResult result = new DOMResult(); autobot.transform(data, result); Node node = result.getNode(); […]

XML Diff和Merge

我想我有一个相当独特的问题需要解决。 好吧,我无法使用谷歌找到足够的信息。 所以在这里, 我从事Java EE SOA应用程序,该应用程序使用Oracle XML DB将XML文档存储为XML。 每当XML发生变化时,我都会增加版本并将以前的版本放到另一个表中。 现在的要求是,我应该将两个版本之间的差异存储为XML,而不是整个XML文档。 有没有可以进行XML比较的Java库? (XMLUnit,……?) 是否有用于捕获XML差异的标准XML模式? 我可以使用哪种转换技术将“差异”应用于XML以在版本之间来回传递? (XSLT,Groovy,……?) 我很感激你的时间。

用于将XML转换为CSV的XSL:根据数据字段将报价添加到末尾

我正在尝试使用Java代码动态地将XML文件转换为CSV文件。 我能够获得转换为CSV的数据,但问题是我的数据是“”和“,”。 这是我的示例XML: 537316 MANUAL 546 “THIS”,”IS”,FOR,”TEST” 345 这是Java代码: import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.w3c.dom.Document; class xmltocsv { public static void main(String args[]) throws Exception { File stylesheet = new File(“C:/testxsl.xsl”); File xmlSource = new File(“C:/test.xml”); DocumentBuilderFactory factory = […]

带参数的Java中的XSL转换

我有一个xsl文件,我需要使用外部源的参数。 我正在使用Java,我的代码看起来像这样: TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource); xsltTransformer.setParameter(parameterName, parameterValue); 但是,在第二行抛出exception – 变量或参数’variable_name’未定义。 我意识到XSL是经过编译的,可能是在创建变换器时编译的。 那么,我如何将参数传递给我的转换? 如何使用setParameter方法?