问题标签 [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 - Java XPath(Apache JAXP 实现)性能
注意:如果您也遇到此问题,请在 Apache JIRA 上投票:
我得出了一个惊人的结论:
似乎比这快了令人难以置信的 100 倍:
我正在使用 JVM 的默认 JAXP 实现:
我真的很困惑,因为很容易看出 JAXP 如何优化上述 XPath 查询以实际执行一个简单的查询getElementsByTagName()
。但它似乎没有这样做。此问题仅限于大约 5-6 个经常使用的 XPath 调用,这些调用由 API 抽象和隐藏。/a/b/c
这些查询仅针对始终可用的 DOM 文档涉及简单路径(例如,无变量、条件)。因此,如果可以进行优化,那将很容易实现。
我的问题:XPath 的缓慢是一个公认的事实,还是我忽略了什么?有更好(更快)的实现吗?或者我应该完全避免使用 XPath 来进行简单的查询?
java - JAXP XSLT document() 函数问题
我正在使用 XSLT 转换的 java 应用程序下工作。我有很多 document() 调用,所以可能有 java.lang.OutOfMemory 异常(我实际上有),因为在每次调用 document() 函数后,文档都会被缓存。
在http://xml.apache.org/xalan-j/faq.html#faq-N102F9我读到可以增加堆内存大小,这不是我的解决方案。我还尝试使用似乎不受支持的增量转换。
那么,在使用 document() 函数时,是否有可能在 jaxp 中关闭文档缓存?
java-me - JAXP Sax Parser Java-ME Midlet 解析汉字时出现异常
我在解析一些嵌入在 XML 文件中的编码为 HTML Unicode 的中文字符时遇到了很大的麻烦。
我将Java ME与javax.xml.parsers.SAXParser一起使用
一个这样的字符文件是词:
关于它的信息:http ://www.isthisthingon.org/unicode/index.php?page=08&subpage=B&glyph=08BCD
但奇怪的是
工作正常。
直接嵌入<test>词</test>
也可以。
我的测试 midlet 有以下源代码:
它正在消亡:
我会很感激任何想法。
java - 验证失败后移动文件 (Java)
我们正在验证 XML 文件,根据验证结果,我们必须将文件移动到不同的文件夹中。
当 XML 有效时,验证器会返回一个值,我们可以毫无问题地移动文件。当 XML 根据架构无效时,也会发生同样的事情。
但是,如果 XML 格式不正确,则验证器会抛出异常,并且当我们尝试移动文件时,它会失败。我们相信内存中的某个地方仍然有一个句柄来保存文件。我们尝试在移动文件之前放置 System.gc() 并对问题进行排序,但我们无法System.gc()
作为解决方案。
代码看起来像这样。我们有一个 File 对象,我们从中创建一个 StreamSource。然后将 StreamSource 传递给验证器。当 XML 格式不正确时,它会引发 SAXException。在异常处理中,我们使用 .renameTo() 方法来移动文件。
在我们尝试的捕获中
但仍然.renameTo()
无法移动文件。如果我们System.gc()
抓到,移动就会成功。
有人可以启发我如何在没有的情况下对其进行排序System.gc()?
我们使用 JAXP 和 saxon-9.1.0.8 作为解析器。
非常感谢
xml - 在另一个 xpath 表达式中使用 XPATH 的结果
我有一个如下所示的 XML。在这里,我想选择节点b的属性值为23 取该值并沿 xml 向下选择节点f的节点j ,其 id 值为 23。这可以在单个 xpath 表达式中实现吗?
我正在使用 JAXP 进行 xml 处理
java - 有没有办法在 JAXP 或 Xalan XSLT 范围内绑定 Java 对象?
Xalan-J 允许我们使用它的扩展机制创建和操作 java 对象。我想要做的是从Java(从调用Xalan 的JVM)传递一个已经创建的对象,然后从xslt 操作这个对象。
例如,我想做这样的事情:
这可能吗?
dtd - Apache Camel 使用 DTD 进行验证
我正在使用 Apache Camel 开发 POC,我必须通过 CXF 公开一个 WS,进行一些验证和转换并调用另一个 WS。我尝试使用验证器,但它似乎只适用于 xml 架构......
我尝试使用 W3.org 工具生成我的 dtd 的 xsd 版本,但结果无效。
有什么解决办法吗?
java - IllegalArgumentException: When using array of Objects as the value of SCHEMA_SOURCE property , no two Schemas should share the same targetNamespace
I am using JasperReport/ireport4, I tried to generate a report as below
but an error occured.
here are my libraries
java - JAXP 非法注释异常
JAXP 给了我这个错误
有什么方法可以找出这 10 个错误在哪里?如果我引用我的一些代码,我可以把它减少到 7 个错误,但这是最愚蠢的调试方式......
我可以像使用 DOM 一样注册一些 ErrorHandler 吗?
我的代码如下所示:
编辑:
这是堆栈跟踪,但它并没有真正告诉我错误在哪里。
消息:10 次 IllegalAnnotationExceptions com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source) com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source) com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.(Unknown Source) com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source) com.sun.xml.internal .bind.v2.ContextFactory.createContext(Unknown Source) com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) java.lang.reflect.Method.invoke(未知来源) javax.xml.bind.ContextFinder.newInstance(未知来源) javax。xml.bind.ContextFinder.find(未知来源) javax.xml.bind.JAXBContext.newInstance(未知来源) javax.xml.bind.JAXBContext.newInstance(未知来源)
java - 查询 JAXP XPath 在 WebSphere 中的第二次调用时找不到节点(JUnit 工作正常)
我正在检查一个带有 xml 元素的元素,如果不存在,将默认一个值。
这是来自 Websphere 7 上的 JAXWS 的 Web 服务调用,作为 org.apache.xerces.dom.ElementNSImpl。
如您所见,我在每次调用时都尽可能多地实例化所有内容。
第一个 Web 服务调用,它返回节点。第二个 Web 服务调用,它为两个 xpath 都返回 null。
根据javadoc “XPath [和 XPathExpression] [对象] 不是线程安全的,也不是可重入的。
有任何想法吗?