问题标签 [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.
java - DocumentBuilder的Java(JAXP)XML解析差异
有什么区别吗
DocumentBuilder.parse(InputStream)
和DocumentBuilder.parse(InputSource)
?
我只能发现对于第一种情况,解析器从流中检测编码,因此它更安全,而在后者中我不确定是否需要设置编码。
我应该注意的任何其他点(例如性能)?
java - java使用StAX以通用方式获取子元素
我正在尝试使用 StAX(我已经不喜欢它了....)
似乎使用它的唯一方法是通过连续的 if-else 条件。
但最重要的是,除非事先知道要解析的 xml 文档的结构,否则似乎无法将元素与其子元素关联起来。这是否正确?
我尝试了以下方法:我在字符串中有这个 xml
我想使用 StAX 来获取 Book 元素,但似乎我只能编写对所有结构进行硬编码的代码。
即使用XMLEventReader,一旦你得到书,开始循环数据,作者等。
有没有一个通用的解决方案?
我尝试了以下方法来解决这个问题:我尝试从 String 到 XMLEventReader 并返回到 String,但我无法获得我最初使用的确切 String 表示形式(命名空间在括号中,额外的冒号等)。
我得到以下信息:
这种情况可以通过 StAX 解决吗?或者 DOM 是唯一的解决方案?
java - java errorlistener 在变压器实例上使用(jaxp)
方法transform 的签名Transformer
是void transform(Source xmlSource,Result outputTarget)throws TransformerException
ie 指定它抛出一个TransformerException 类型的检查异常。
我无法理解如何ErrorListener
适应。
如果将 anErrorListener
设置为Transform
object 这是否意味着不会引发异常?
如果无论如何抛出它,ErrorListener 有什么用处?
谢谢
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 不如今天那么好的时候得到大量开发的。
java - Java/XSD 解析
我怀疑是否有这样的事情,但我想问:
有谁知道Java中是否有一个库可以读取xsd文件并“创建”定义的元素,例如以字符串格式在代码中使用?
例如阅读以下架构:
并具有以下格式的字符串:
自动工具执行类似的操作,即解析 WSDL 并从类型部分创建例如 JAXB 类,这些类可以是模式中定义的元素的实例。
有没有图书馆可以做到这一点?
更新:
例如,在 Eclipse 中,当为 Web 应用程序创建 xml 描述符时,它会显示一个树表,其中包含用户根据模式填写的所有必需元素。他们是怎么做到的呢?我想他们会解析 jar 中包含的 xsds
非常欢迎任何输入。
谢谢!
java - 在 JAXP 中使用 XPath 检索 XML 节点和节点属性的值
给定一个如下所示的 xml 文档:
我想打印“key”属性和元素的值,所以它看起来像这样:
我可以使用以下代码毫无问题地打印节点值:
我可以通过更改 xpath 表达式和节点方法来打印“key”属性的值,如下所示:
似乎有一种方法可以在单个evaluate
. 我总是可以评估两个 NodeList 并使用公共索引遍历它们,但我不确定它们是否保证以相同的顺序返回。任何建议表示赞赏。
java - 如何获取元素和在带有 Jre 默认处理器 (JAXPSAXProcessor) 的 XPath 中
我正在处理一些包含和/或标签的 xml 文件。我想将它们转换为 html。在我的 XSL 中,我使用了两个模板
它在我使用 Xalan 作为处理器时有效,但是当我使用 JAXPSAXProcessor 时出现错误:ERROR [main] JAXPSAXProcessorInvoker - 'or' 中的语法错误。错误 [main] JAXPSAXProcessorInvoker - 'and' 中的语法错误。
我想 JaxPSaxProcessor 翻译和/或 Xpath 中的运算符。 在这里你可以看到运算符列表 我不能更改 jaxb 处理器,因为它已在很多地方使用过。还有其他解决问题的建议吗?
java - 如何高效编写xml数据库文件?
我想构建一个 XML 文件作为数据存储。它应该看起来像这样:
在运行时,我可能需要将项目添加到数据存储区。项目的数量可能很高,因此我不想将整个文档保存在内存中并且不能使用 DOM。我只想写发生变化的部分。还是 DOM 支持这个?
我第一次看 StAX,但我不确定它是否符合我的要求。
在根元素关闭之前记住文件末尾的光标位置不是最好的吗?这始终是添加新项目的位置。因此,如果我记得那个位置并在更改期间保持最新,我可以在最后添加一个新项目,而无需遍历整个文件。
也许第二个游标可以独立于第一个游标使用,以迭代文档仅用于阅读目的。
我看不到 StAX 支持任何这些,是吗?
没有基于块的文件API而不是基于流的API吗?文件和文件系统不是块“设备”的典型示例吗?如果有这样的 API,它对我的问题有帮助吗?
提前致谢。
dom - 如何通过 DOM 在 xml 文档中插入 schemalocation
我用 JAXP 创建了一个 xml 文档并搜索了一种插入模式位置的方法。目前我的应用程序产生:
但是我需要:
我的代码:
谢谢你的时间,
卡斯滕
java - JAXP:如何根据 XML 模式验证 org.w3c.dom.Document
如何org.w3c.dom.Document
使用 JAXP 针对 XML Schema 验证(已经解析的)?