Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DOM:GetElementsByTagnames用于不包含命名空间的元素_Java_Xml_Dom_Xml Namespaces - Fatal编程技术网

Java DOM:GetElementsByTagnames用于不包含命名空间的元素

Java DOM:GetElementsByTagnames用于不包含命名空间的元素,java,xml,dom,xml-namespaces,Java,Xml,Dom,Xml Namespaces,我注意到,当与支持命名空间的DocumentBuilderFactory一起使用时: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new File("sample.xml")); 在对GetElementsB

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

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("sample.xml"));
在对
GetElementsByTagnames
的调用中使用
null
或零长度字符串
,将生成具有提供的localName的元素,这些元素根本不在名称空间中(不包括可能位于名称空间中的具有该localName的元素):


但是,元素::getElementsByTagNameNS的(不可链接)非常模糊,没有明确提到空指针或零长度字符串可用于无命名空间元素。我可以依赖这种行为吗?

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


不使用DOM的另一个原因是有更好的选择

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


不使用DOM的另一个原因是有更好的选择

我认为这是一个灰色区域,我不会在所有DOM实现中依赖它。我认为这是一个灰色区域,我不会在所有DOM实现中依赖它。
NodeList foo1 = doc.getElementsByTagNameNS(null, "localname");
NodeList foo2 = doc.getElementsByTagNameNS(""  , "localname");