gpt4 book ai didi

Java DOM : getElementsByTagNameNS for an element in NO namespace

转载 作者:行者123 更新时间:2023-12-01 14:12:15 25 4
gpt4 key购买 nike

我注意到,当与命名空间感知的 DocumentBuilderFactory 一起使用时:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("sample.xml"));

在调用 getElementsByTagNameNS 时使用 null 或零长度字符串 "" 将生成具有所提供的 localName 根本不在命名空间中(不包括可能位于命名空间中的具有 localName 的元素):

NodeList foo1 = doc.getElementsByTagNameNS(null, "localname");
NodeList foo2 = doc.getElementsByTagNameNS("" , "localname");

但是,(不可链接)Javadoc for Element::getElementsByTagNameNS 相当含糊,并且没有明确提及空指针或零长度字符串可用于非命名空间元素。我可以依赖这种行为吗?

最佳答案

DOM 通常使用 null 来表示“未命名的命名空间”。这在某些方法中是明确的。但如果它不在规范中,你就不能依赖它。 (大多数编写 DOM 应用程序的人只针对一种 DOM 实现来测试它们,当他们发现它只适用于该实现时,他们可能会感到非常惊讶。)

不使用 DOM 的另一个原因 - 有更好的替代方案!

关于Java DOM : getElementsByTagNameNS for an element in NO namespace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423266/

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