私はTAG2から値を取得したいと私は、このXMLました:getElementsByTagNameNSがJavaで空であるのはなぜですか?
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 ByteArrayInputStream(xml.getBytes())'を 'new InputSource(new StringReader(xml)) 'に置き換えることをお勧めします。 – Isaac