gpt4 book ai didi

java - 如何在 Java 中处理 XML 从 xml 数据库检索数据

转载 作者:行者123 更新时间:2023-12-01 14:03:54 26 4
gpt4 key购买 nike

我在我的 java web 应用程序(mvc 范例)中使用 eXist-db。我想从数据库检索 xml 数据,然后使用 XSLT 转换来转换此 xml。以下是我所经历的步骤。

  1. 我查询数据库并得到一个 XMLResourceResourceSet 作为结果。

  2. 现在我必须使用 XSLT 转换来转换从数据库检索到的 XML(作为 XMLResource)。

    由于 XSLT 转换(使用 javax.xml.transform.Transformer)需要 xml Source 作为参数,因此我必须从 XMLResource 转换为 StreamSource。 p>

但是这是处理 xml 资源的最佳方式吗?我应该将 XMLResource 转换为其他内容吗?

最佳答案

XMLResource 提供 getContentAsSAX method将 XML 直接提供给 SAX ContentHandler。并且 javax.xml.transform 提供了 TransformerHandler 的概念,将 Transformer 公开为 SAX ContentHandler。所以你可以结合使用这两者:

Source stylesheet = ... // however you're loading your stylesheet
TransformerHandler handler = ((SAXTransformerFactory)transformerFactory)
.newTransformerHandler(stylesheet);
Result result = ... // StreamResult, DOMResult etc.
handler.setResult(result);
xmlResource.getContentAsSAX(handler);

// result now holds the result of the transformation

对于相反的方向,如果您需要 XMLResource 作为转换的目标,那么您可以将 SAXResult 与普通变压器

Source stylesheet = ... // however you're loading your stylesheet
Transformer transformer = transformerFactory.newTransformer(stylesheet);
Source source = ... // StreamSource, DOMSource, etc.
Result result = new SAXResult(xmlResource.setContentAsSAX());
transformer.transform(source, result);

关于java - 如何在 Java 中处理 XML 从 xml 数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com