问题标签 [jaxp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3219 浏览

java - DocumentBuilder的Java(JAXP)XML解析差异

有什么区别吗

  1. DocumentBuilder.parse(InputStream)
  2. DocumentBuilder.parse(InputSource)?

我只能发现对于第一种情况,解析器从流中检测编码,因此它更安全,而在后者中我不确定是否需要设置编码。

我应该注意的任何其他点(例如性能)?

0 投票
2 回答
11916 浏览

java - java使用StAX以通用方式获取子元素

我正在尝试使用 StAX(我已经不喜欢它了....)
似乎使用它的唯一方法是通过连续的 if-else 条件。
但最重要的是,除非事先知道要解析的 xml 文档的结构,否则似乎无法将元素与其子元素关联起来。这是否正确?
我尝试了以下方法:我在字符串中有这个 xml

我想使用 StAX 来获取 Book 元素,但似乎我只能编写对所有结构进行硬编码的代码。
即使用XMLEventReader,一旦你得到书,开始循环数据,作者等。
有没有一个通用的解决方案?
我尝试了以下方法来解决这个问题:我尝试从 String 到 XMLEventReader 并返回到 String,但我无法获得我最初使用的确切 String 表示形式(命名空间在括号中,额外的冒号等)。

我得到以下信息:

这种情况可以通过 StAX 解决吗?或者 DOM 是唯一的解决方案?

0 投票
1 回答
847 浏览

java - java errorlistener 在变压器实例上使用(jaxp)

方法transform 的签名Transformervoid transform(Source xmlSource,Result outputTarget)throws TransformerExceptionie 指定它抛出一个TransformerException 类型的检查异常。
我无法理解如何ErrorListener适应。
如果将 anErrorListener设置为Transformobject 这是否意味着不会引发异常?
如果无论如何抛出它,ErrorListener 有什么用处?

谢谢

0 投票
4 回答
1555 浏览

java - 自定义 Java XMLBuilder 与基于标准类

什么是 XML 生成的最佳性能解决方案。

我的目标是从代码构建一些简单的 XML。我将实现 XML Builder 的基于简单自定义 StringBuffer 的实现。从另一边来看,有几个库,如http://code.google.com/p/java-xmlbuilder/http://code.google.com/p/xmltool/,它们有很好的 DSL,但我想缺乏性能。

由于我的目标是构建足够简单且性能出色的 XMLBuilder,我想我将构建自定义解决方案。它将具有:

  • 用于 XML 构造的基于 Java 的 DSL(基本上是添加标签)
  • 出色的基于 StringBuffer 的性能。
  • 添加 XML 标记时的字符串数据转义处理。
  • 自动缩进

如果我对性能期望有误,请提出建议,使用现成的库可能更好。

更新。为什么我认为标准 xml 构建器的性能不是很好。

标准 XML 构建器使用 Document Builder Factory 并在幕后使用类。这些类也经过优化以适合所有用户。例如我不需要命名空间支持等。

考虑上面非常简单的 XML 代码。如果您使用标准工具进行构建,那么仅仅为了制作这个简单的 XML 就需要做很多工作。我认为最好自己使用 String 生成它。

更新 2。性能要求是代码应该做尽可能多的事情来生成简单的 XML,而不是更多。

更新 3. 感谢大家的好评!现在我更好地理解了我需要什么,并且我最初的目标并没有用“性能”这个词来正确设置。我的真正目标是使用足够简单的解决方案和方便的 DSL 来描述 XML 结构并生成 XML 输出。

我将使用纯 Java 对象作为 XML 的 DSL,并使用 XStream 库生成 XML,这是非常简单的解决方案。

更新 4.JAXB。我讨论了 XStream 与 JAXB,发现 JAXB 比 XStream 快。另外,我已经在我的项目中使用了 JAXB,我喜欢它的标准注释。我改变了主意,现在将使用 JAXB,因为 XStream 最初是在 JAXB 不如今天那么好的时候得到大量开发的。

0 投票
2 回答
1448 浏览

java - Java/XSD 解析

我怀疑是否有这样的事情,但我想问:
有谁知道Java中是否有一个库可以读取xsd文件并“创建”定义的元素,例如以字符串格式在代码中使用?
例如阅读以下架构:

并具有以下格式的字符串:

自动工具执行类似的操作,即解析 WSDL 并从类型部分创建例如 JAXB 类,这些类可以是模式中定义的元素的实例。
有没有图书馆可以做到这一点?

更新:
例如,在 Eclipse 中,当为 Web 应用程序创建 xml 描述符时,它会显示一个树表,其中包含用户根据模式填写的所有必需元素。他们是怎么做到的呢?我想他们会解析 jar 中包含的 xsds
非常欢迎任何输入。
谢谢!

0 投票
1 回答
26754 浏览

java - 在 JAXP 中使用 XPath 检索 XML 节点和节点属性的值

给定一个如下所示的 xml 文档:

我想打印“key”属性和元素的值,所以它看起来像这样:

我可以使用以下代码毫无问题地打印节点值:

我可以通过更改 xpath 表达式和节点方法来打印“key”属性的值,如下所示:

似乎有一种方法可以在单个evaluate. 我总是可以评估两个 NodeList 并使用公共索引遍历它们,但我不确定它们是否保证以相同的顺序返回。任何建议表示赞赏。

0 投票
1 回答
126 浏览

java - 如何获取元素在带有 Jre 默认处理器 (JAXPSAXProcessor) 的 XPath 中

我正在处理一些包含和/或标签的 xml 文件。我想将它们转换为 html。在我的 XSL 中,我使用了两个模板

它在我使用 Xalan 作为处理器时有效,但是当我使用 JAXPSAXProcessor 时出现错误:ERROR [main] JAXPSAXProcessorInvoker - 'or' 中的语法错误。错误 [main] JAXPSAXProcessorInvoker - 'and' 中的语法错误。

我想 JaxPSaxProcessor 翻译和/或 Xpath 中的运算符。 在这里你可以看到运算符列表 我不能更改 jaxb 处理器,因为它已在很多地方使用过。还有其他解决问题的建议吗?

0 投票
4 回答
1013 浏览

java - 如何高效编写xml数据库文件?

我想构建一个 XML 文件作为数据存储。它应该看起来像这样:

在运行时,我可能需要将项目添加到数据存储区。项目的数量可能很高,因此我不想将整个文档保存在内存中并且不能使用 DOM。我只想写发生变化的部分。还是 DOM 支持这个?

我第一次看 StAX,但我不确定它是否符合我的要求。

在根元素关闭之前记住文件末尾的光标位置不是最好的吗?这始终是添加新项目的位置。因此,如果我记得那个位置并在更改期间保持最新,我可以在最后添加一个新项目,而无需遍历整个文件。

也许第二个游标可以独立于第一个游标使用,以迭代文档仅用于阅读目的。

我看不到 StAX 支持任何这些,是吗?

没有基于块的文件API而不是基于流的API吗?文件和文件系统不是块“设备”的典型示例吗?如果有这样的 API,它对我的​​问题有帮助吗?

提前致谢。

0 投票
3 回答
14505 浏览

dom - 如何通过 DOM 在 xml 文档中插入 schemalocation

我用 JAXP 创建了一个 xml 文档并搜索了一种插入模式位置的方法。目前我的应用程序产生:

但是我需要:

我的代码:

谢谢你的时间,
卡斯滕

0 投票
1 回答
6172 浏览

java - JAXP:如何根据 XML 模式验证 org.w3c.dom.Document

如何org.w3c.dom.Document使用 JAXP 针对 XML Schema 验证(已经解析的)?