gpt4 book ai didi

Java、DOM 节点上的 XPath

转载 作者:行者123 更新时间:2023-11-30 04:29:35 42 4
gpt4 key购买 nike

我想将一个非常大的 XML 文件加载到 DOM 树中(使用 JAXP),进行一些修改并在生成的 DOM 上运行 XPath 查询。

我们使用我们自己的 DOM 实现,它是通过延迟加载实现的(即,一开始仅从文件加载 DOM 的前两层,如果调用 getChildNodes()/etc.,我们将返回到文件并加载更多级别)。这非常慢,但是,我们能够加载更大的文件,特别是如果我们只使用文件的一部分。

我的问题:XPath 在 XML 上使用不同的 View (据我所知)。我很好奇默认的 Oracle JDK 实现现在是否将整个 DOM 文档转换为一些内部 XPath 文档(这真的很糟糕,因为它会急切地加载整个文档)或者 XPath 实现是否能够直接在我们的DOM 树(即,如果可以在已加载的元素内评估 XPath,则无需进一步加载)。

最佳答案

这可以用几行代码进行测试,只需将您的 DOM 提供给 XPath 评估器,并将一些断点/调试打印放入您的 DOM 方法中。如果它们被调用以获取不应检索的元素,那么它会构建自己的树。示例:尝试仅查询文档的第一个子级并查看它实际尝试检索的内容。

如果您的文件太大,您也可能可以检查完全不同的方法?已调用SAX .

关于Java、DOM 节点上的 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992405/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com