gpt4 book ai didi

java - 通过 id 搜索 xml 元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:09 25 4
gpt4 key购买 nike

我们可以使用 dom 解析器在 xml 文件中通过 id 搜索元素吗,例如:

<root>
<context id="one">
<entity>
<identifier>new one</identifier>
</entity>
</context>

<context id="two">
<entity>
<identifier>second one</identifier>
</entity>
</context>

</root>

我想要一个 id = "one"的节点,我的代码

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(new File("filename.xml"));

Element ele = document.getElementById("one");

返回空,

还有其他办法吗?

最佳答案

来自 Document.getElementById 的文档

Note: Attributes with the name "ID" or "id" are not of type ID unless so defined.

问题是 Document 不知道名为 id 的属性是标识符,除非您告诉它。在调用 newDocumentBuilder 之前,您需要在 DocumentBuilderFactory 上设置架构。这样 DocumentBuilder 就会知道元素类型。

在架构中,您需要在适当的位置使用类似这样的内容:

<xs:attribute name="id" type="xs:ID"/> 

关于java - 通过 id 搜索 xml 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234678/

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