Java getElementsByTagName不';行不通

Java getElementsByTagName不';行不通,java,xml,document,getelementsbytagname,Java,Xml,Document,Getelementsbytagname,下面是代码的简单部分: String test = "<?xml version="1.0" encoding="UTF-8"?><TT_NET_Result><GUID>9145b1d3-4aa3-4797-b65f-9f5e00be1a30</GUID></TT_NET_Result>" DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

下面是代码的简单部分:

String test = "<?xml version="1.0" encoding="UTF-8"?><TT_NET_Result><GUID>9145b1d3-4aa3-4797-b65f-9f5e00be1a30</GUID></TT_NET_Result>"

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        
Document doc = dbf.newDocumentBuilder().parse(new InputSource(new StringReader(test)));                    
NodeList nl = doc.getDocumentElement().getElementsByTagName("TT_NET_Result");
String test=“9145b1d3-4aa3-4797-b65f-9f5e00be1a30”
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
Document doc=dbf.newDocumentBuilder().parse(新的InputSource(新的StringReader(测试));
NodeList nl=doc.getDocumentElement().getElementsByTagName(“TT_NET_Result”);
问题是我没有得到任何结果-节点列表变量“nl”为空。
可能有什么问题?

您在document元素下请求元素,但TT\u NET\u结果是document元素。如果你打电话

NodeList nl = doc.getElementsByTagName("TT_NET_Result");

那么我怀疑你会得到你想要的结果。

这是对这个老问题的另一个回答。我今天在代码中遇到了类似的问题,实际上我一直在读/写XML。出于某种原因,我忽略了一个重要事实。如果你想用

NodeList elements = doc.getElementsByTagNameNS(namespace,elementName);
您需要使用名称空间感知的工厂来解析文档

private static DocumentBuilderFactory getFactory() {
    if (factory == null){
        factory = DocumentBuilderFactory
                .newInstance();
        factory.setNamespaceAware(true);
    }
    return factory;
}

非常感谢。我完全忽略了文档元素。这对我很有帮助。谢谢