问题标签 [woodstox]
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 - JAXB 使用 Woodstox 解析器来提高性能?
是否可以切换本机解析器,我相信它是基于 Java 反射的。我们有一些性能问题,想知道我们是否可以切换实现。
非常感谢您的建议。
附加信息:这是继承的代码,我们需要修复 Web 服务中的性能问题。我正在寻找无需更改代码的性能提升。现有代码使用 JAXB 编组和解组通过 CXF(wsdl 到 java)生成的 java 对象。
我的目标是将实现切换到 sTax,然后使用 Woodstox 库。
java - 如何配置 JAXB 以在 JBoss 6 上使用 Woodstox?
我正在 JBoss 6 上部署 Java EE 6 JAX-RS Web 服务,我想使用Woodstox而不是当前使用的任何 SAX/StAX 解析器。由于某些堆栈跟踪列出了(在其他包中)中的类:
org.apache.xerces.parsers
org.apache.xerces.impl
org.apache.xerces.jaxp
...我猜它正在使用Xerces。
我已经尝试将必要的 JAR(woodstox-core-asl-4.1.1.jar
和stax2-api-3.1.1.jar
)添加到 EAR(部署在/lib
目录中)和 WAR(在WEB-INF/lib
)中,但这似乎没有影响任何事情,因为 XML 解析中异常的堆栈跟踪仍然引用 Xerces 包。
我已经阅读过这个问题,但我认为我已经尝试过如上所述的“将其添加到您的类路径”选项。我也已经尝试根据此线程添加以下 VM args :
我究竟做错了什么?如何让 JAXB 使用 Woodstox 而不是(我认为)Xerces?
java - 如何使用 StAX XML 解析器捕获属性事件?
我尝试使用 StAX XML 解析器解析 XML 文件。它给了我START_ELEMENT
和END_DOCUMENT
事件,但没有ATTRIBUTE
事件。如何ATTRIBUTE
使用 StAX 解析器接收事件?
我的 XML:
我的 StAX XML 解析器:
xml-parsing - 有没有办法使用axis2接受SOAP请求中的实体
目前我对实体没有任何问题
< > ' &.
但是如果我提供一些其他实体,则会在axis2中出现以下错误
有没有办法在axis2中添加实体解析器
xml - 如何将相关系统 DTD 加载到 StAX 解析器中?
我正在使用woodstox 为XML 文件实现StAX 解析器。假设我在文件系统的公共目录中的某处有一个有效的 XML 文件,该文件具有匹配的 DTD。
XML 使用相对系统标识符声明对其 DTD 的引用,如下所示:
从验证的角度来看,对我来说一切都很好。(是吗?xmllint 不会抱怨。)但是,当我尝试使用下面的代码解析文件时,woodstox 会抛出java.io.FileNotFoundException,因为它找不到相关的 DTD 文件。在我看来,该实现尝试访问相对于工作目录而不是相对于 XML 文件对象的 DTD 文件。
- 这是故意的吗?
- 有没有一种方便的方法可以说服 StAX 解析器加载相对于给定 XML 文件而不是相对于工作目录的 DTD?
stax - StaxMate:访问纯 XML
我得到了以下(实际上是巨大的)XML 来处理:
使用StaxMate,这非常容易。但是我到底如何告诉 StaxMate“记录”例如每个项目的纯 XML (参见上面的 XML)。所以在处理完一个项目后,我已经完成了我的处理+我有字符串
某处。
非常感谢,法比安
java - Java - XML 解析器性能:Sun Java Streaming XML Parser (SJSXP) vs Woodstox
我正在寻找最新的、内存高效的和高性能的 java XML 解析 API。我需要解析 3 MB 到 5 MB 的 XML 文件。
我对此进行了谷歌搜索,了解到 Sun Java Streaming XML Parser (SJSXP) 和 Woodstox 比 DOM 和 SAX 快得多。两者都使用 StAX API。*这些技术不支持模式验证。
Aalto XML 处理器也实现了 StAX API。
我还没有找到关于这些技术性能的具体发现。
哪一个在内存效率、高性能和易用性方面最好?
xslt - 如何使用 XSLT 控制 Spring-WS 命名空间单引号或双引号
我想将文档中单个命名空间声明的双引号更改为单引号,同时将所有其他命名空间声明保留为双引号。我怎样才能做到这一点?
这是来自服务器的响应文档:
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><InquiryResponse xmlns="http://www.openuri.org/"><Header><HeaderAttr1>abcd</HeaderAttr1><HeaderAttr2>xxx</HeaderAttr2><HeaderAttr3>string</HeaderAttr3></Header><Body><InquiryResult><ResultItem1>theresulttext</ResultItem1><ResultItem2>abcd</ResultItem2><ResultItem3>0</ResultItem3></InquiryResult></Body></InquiryResponse></soapenv:Body></soapenv:Envelope>
我需要类似的东西(注意 open:InquiryResponse 没有“)。
<?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <open:InquiryResponse xmlns:open='http://www.openuri.org/'><open:Header><open:HeaderAttr1>abcd</open:HeaderAttr1><open:HeaderAttr2>xxx</open:HeaderAttr2><open:HeaderAttr3>string</open:HeaderAttr3></open:Header><open:Body><open:InquiryResult><open:ResultItem1>theresulttext</open:ResultItem1><open:ResultItem2>abcd</open:ResultItem2><open:ResultItem3>0</open:ResultItem3></open:InquiryResult></open:Body></open:InquiryResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
我已经能够进行命名空间前缀更改、附加命名空间声明、空白修正、字符集更改,我现在只需要更改这两个字节。
我正在使用 Spring WS + Woodstox + Axiom 构建一个简单的查询 Web 服务。它是现有服务的替代品,我想让它逐字节相同($$ 原因)。我可以将 XML 转换为相同的类型,但目前我们不知道哪些消费者使用 grep 或正则表达式来查找数据。
到目前为止,我正在尝试使用 XSLT 和 PayloadTransformingInterceptor 来解决这个问题。我也会对其他选项感兴趣。
java - 使用 Woodstox 解析器解析“&”字符时出错
爪哇:1.6
伍德斯托克斯:4.1.4
我目前正在尝试让 Woodstox xml 解析器成为我的朋友。但开始真的很难:) 我有小吗?像这样解析xml时的问题:
这很简单,但不幸的是我遇到了这个异常:
这是因为字符 &。
问题:
是否可以成功读取 xml 而不会出现此异常?
提前谢谢
你
java - woodstox 跳过部分 xml
爪哇:1.6
伍德斯托克斯:4.1.4
我只想在解析时跳过部分 xml 文件。让我们看一下那个简单的xml:
我只想跳过爸爸元素。所以看起来像使用如下所示的 skipElement 方法是一个好主意:
我们只是找到元素爸爸的开始,然后跳过它。但不是那么快,因为会抛出异常。这是输出:
这不是预期的。这确实很意外,因为方法 skipElement 是在 START_ELEMENT 状态下执行的。我不知道发生了什么,也许你知道更多:)。所以请帮助我。
提前感谢
休伯特