问题标签 [dom4j]

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 投票
6 回答
4484 浏览

java - 使用 dom4j 从流中读取单个 XML 文档

我正在尝试使用 dom4j 一次从流中读取单个 XML 文档,对其进行处理,然后继续处理流中的下一个文档。不幸的是,dom4j 的 SAXReader(在幕后使用 JAXP)一直在读取并阻塞在下面的文档元素上。

有没有办法让 SAXReader 在找到文档元素的结尾后停止读取流?有没有更好的方法来实现这一点?

0 投票
2 回答
221 浏览

jython - 需要帮助使 Jython (dom4j) 脚本更优雅:)

我已经开始使用 Jython,因为它似乎是一种优秀的语言,并且到目前为止已经证明是这样。

我正在使用 dom4j 从磁盘上的一堆 HTML 文件的 DOM 中操作和检索数据。我编写了下面的脚本来检查使用 Xpath 的H1标签和抓取文本的 DOM,如果H1标签不存在于 DOM 中,它会搜索标题标签并从中获取文本。

我对 Jython 很陌生,但我确信有一种方法可以比下面的方法更优雅地执行所需的任务,如果我的想法是正确的,有没有人可以告诉我一个更好的方法来做到这一点?

如果有人可以提供帮助,那就太好了。干杯

0 投票
1 回答
743 浏览

jython - 是否可以使用 Jython 和 dom4j 在元素之间添加元素?

只是在玩 dom4j,非常好。我做了一年半的 PHP 开发人员,刚找到一份新工作并开始使用 Jython,现在我有空闲时间,它是一门很棒的语言。正在考虑尝试在元素之间添加一个元素,示例如下:

是否可以在两者之间插入另一个p标签而不将 DOM 转换为字符串并再次返回 DOM,因为这是我能够做到的唯一方法?

0 投票
2 回答
1382 浏览

java - 需要帮助使用 dom4j 处理文档

我创建了两个文档对象,现在我想将一个元素和它的子元素移动到另一个元素。我该怎么做。谁能告诉我,谢谢。^_^

0 投票
1 回答
559 浏览

java - 创建 Dom4J SaxReader 对象池有什么价值吗?

我正在使用 Dom4J 1.4.2。

现在,每当我想解析一个新的 XML 文档时,我的代码都会创建一个新的 SaxReader:

创建一个 SaxReader 对象池并重用它们有什么价值吗?在每次调用中创建一个新的 SaxReader 需要多少开销?

我的代码可以从池中获取一个,解析文档然后将其返回到池中以供另一个线程使用。

0 投票
1 回答
4018 浏览

xml - 与在 Dom4J 中使用 DOM 相比,XPath 的效率如何?

例如考虑以下 xml

使用 DOM 获取根节点,然后循环遍历 childNode 和 grandChildNode 是否有效,或者使用 XPath 表达式收集子节点和 grandChild 节点的详细信息是否有效?

0 投票
2 回答
573 浏览

java - Dom4j 规则与所有预期节点不匹配

如果预定义的模式 //authorize 与以下 xml 片段中的元素匹配,我将使用 dom4j 的规则 api 来触发操作。

不幸的是,它似乎不适用于嵌套元素,只能找到第一级的授权元素。该动作仅触发两次,但有 5 个授权元素。有人知道如何解决这个问题吗?提前致谢。

我尝试将授权标签与以下规则匹配:

该规则在第一层的元素上匹配两次。我用 document.selectNodes 方法交叉检查了 XPath 模式,得到了所有五个元素。

0 投票
11 回答
64026 浏览

java - 您推荐什么 Java XML 库(替换 dom4j)?

我正在寻找类似 dom4j 的东西,但没有 dom4j 的缺陷,例如文档错误或缺失以及看似停滞的开发状态。

背景:我一直在使用 提倡dom4j,但我觉得它并不完全正确,因为我知道该库远非最佳(例如:查看 XSLT 相关样式表类中的方法是如何记录的;你会传递什么来运行( ) 作为String mode参数?)

要求:该库应该比使用 纯 JDKjavax.xmlorg.w3c.dom包)时更容易处理基本的 XML。像这样的事情:

  • 将 XML 文档(从文件或字符串)读入对象,轻松遍历和操作 DOM,执行 XPath 查询并针对它运行 XSLT。
  • 在您的 Java 代码中构建 XML 文档,添加元素和属性以及数据,最后将文档写入文件或字符串。

实际上,我真的很喜欢dom4j 的承诺:“易于使用,开源库,用于处理 XML、XPath 和 XSLT [...],完全支持 DOM、SAX 和 JAXP。 ”而即将推出的 dom4j 2.0 确实声称可以解决所有问题: 充分利用 Java 5 并添加缺失的文档。但不幸的是,如果你仔细观察

警告:dom4j 2.0 处于 pre-alpha 阶段。它可能无法编译。如果它可以随机编译,它很可能无法运行。如果它偶尔运行,它可能会突然爆炸。如果要使用 dom4j,则需要 1.6.1 版本。真的。

...而且该网站已经说了很长时间了。那么 dom4j 有什么好的替代品吗?请为您的首选库提供一些理由,而不仅仅是转储名称和链接。:-)

0 投票
3 回答
2179 浏览

xpath - Dom4j 分离节点,Jython

我正在使用 Dom4j 分离节点,如下所示:

我按名称选择 div 节点,然后使用 detach 方法将其删除:

这似乎可以很好地删除 div,我注意到它还删除了该 div 中的元素和文本。我想要实现的是在不删除 div 内的元素和文本的情况下删除 div,从而导致:

是否可以使用 dom4j 实现这一目标?如果没有关于如何解决这个问题的任何建议?

干杯

伊夫

更新:

@alamar

通过获取您的代码并对其进行一些编辑,我已经实现了我想要的,这就是我想出的:

这似乎有效,但在以下情况下将节点添加到父节点的末尾:

结果是这样的:

我试图弄清楚如何让已删除节点的内容保持在其原始位置,在名为“keep”的 div 之前,而不是在名为“keep”的 div 之后添加。我已经尝试了一些东西,但似乎无法做到这一点,有人可以帮忙吗?

伊夫

0 投票
2 回答
3503 浏览

java - 使用 dom4j 读取时转换文档编码

有什么方法可以将 dom4j 的 SAXReader 解析的文档从 ISO-8859-2 编码转换为 UTF-8?我需要在解析时发生这种情况,以便 dom4j 创建的对象已经是 Unicode/UTF-8 并且正在运行代码,例如:

返回真。