Tag: dom4j

与具有多个Text子节点的节点一起使用时,XPath包含(text(),'some string')不起作用

我有一个小问题,Xpath包含dom4j … 可以说我的XML是 <Home> <Addr> <Street>ABC</Street> <Number>5</Number> <Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment> </Addr> </Home> 比方说,我想find所有在给定的根元素的文本中有ABC的节点… 所以我需要写的xpath将是 //*[contains(text(),'ABC')] 然而,这不是什么Dom4j返回….这是一个dom4j的问题,或者我的理解xpath的工作原理。 因为该查询仅返回街元素而不是注释元素。 DOM使Comment元素成为一个具有四个标签二的复合元素 [Text = 'XYZ'][BR][BR][Text = 'ABC'] 我会假设查询仍然应该返回的元素,因为它应该find元素和运行包含它,但它不… … 下面的查询返回的元素,但它返回远远多于只是元素,它也返回父元素以及…这是不希望的问题… //*[contains(text(),'ABC')] 是否有人知道将返回元素<Street/>和<Comment/>的xpath查询?

你推荐什么Java XML库(replacedom4j)?

我正在寻找类似dom4j的东西,但没有dom4j的瑕疵,比如文档不好或丢失,以及似乎停滞的开发状态。 背景:我一直在使用和 倡导 dom4j,但是感觉并不完全正确,因为我知道库很不理想(例如:请参阅XSLT相关的Stylesheet类中的方法是如何logging的;将通过什么来运行)作为String mode参数?) 要求:该库应该比使用 纯JDK ( javax.xml和org.w3c.dom包)更容易进行基本的XML处理。 像这样的事情: 将XML文档(从文件或string)读取到对象中,轻松遍历和操作DOM,执行XPath查询并对其运行XSLT。 在Java代码中构buildXML文档,添加元素和属性和数据,最后将文档写入文件或string。 我真的很喜欢dom4j所承诺的 ,实际上:“ 易于使用,与XML,XPath和XSLT一起工作的完全支持DOM,SAX和JAXP的开放源代码库。 ”即将到来的dom4j 2.0确实宣称解决了所有问题:充分利用Java 5并添加缺less的文档。 但不幸的是,如果你仔细观察 : 警告:dom4j 2.0在pre-alpha阶段。 它可能不能被编译。 如果可以随机编译,很可能无法运行。 如果偶尔运行,可能会突然爆炸。 如果你想使用dom4j,你想要版本1.6.1。 真。 …和网站已经说了很长一段时间。 那么dom4j有没有好的select? 请为您喜欢的图书馆提供一些理由,而不是仅仅倾销名字和链接。 🙂