我想要得到的數值超出TAG2和我得到這個一個xml:爲什麼在java中getElementsByTagNameNS爲空?
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<ns1:schema xmlns:ns1='http://example.com'>" +
"<ns1:tag1>" +
" <ns1:tag2>value</ns1:tag2>" +
"</ns1:tag1>" +
"</ns1:schema>";
它然後解析到一個文件,並希望得到由tagnameNS的元素。但是,當我運行這個節點列表是空的,爲什麼?
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilderFactory.setNamespaceAware(true);
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new InputSource(new StringReader(xml)));
NodeList nl = doc.getElementsByTagNameNS("http://example.com", "tag2");
String a = nl.item(0).getNodeValue();
仍然不能使用URI。
無關,但爲了減少全世界編碼相關的問題,我建議你用'new InputSource(new StringReader(xml))'替換'new ByteArrayInputStream(xml.getBytes())''。 – Isaac