作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到,当与命名空间感知的 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/
我是一名优秀的程序员,十分优秀!