1

私はこのxmlを持っています:

InputStream is = new ByteArrayInputStream(
        "<data:RobCtiAifoData xmlns:data=\"urn:cz:isvs:rob:schemas:RobDotazyData:v1\" xmlns:reg=\"urn:cz:isvs:reg:schemas:RegTypy:v1\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:cz:isvs:rob:schemas:RobUnivDotazy:v1\"><data:Aifo a=\"b\">1</data:Aifo><data:VyuzitiPoskytnuti>vyuziti</data:VyuzitiPoskytnuti> </data:RobCtiAifoData>"
                .getBytes());

// InputStream is = new ByteArrayInputStream(xml.getBytes());
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(is);
Node node = document.getDocumentElement();

名前空間なしで要素の名前を取得したいので、プレフィックスなしで要素の名前のサブストリングを呼び出したいとき

node.getNodeName()data:VyuzitiPoskytnuti に与えるか、node.getNamespaceURI()またはnode.getPrefix()私にちょうど与えるnull。では、どうすればノードのプレフィックスを取得できますか?

4

1 に答える 1

5

名前空間サポートを有効にしてみてください。

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();

JavaDocからsetNamespaceAware:_

このコードによって生成されたパーサーがXML名前空間のサポートを提供することを指定します。デフォルトでは、これの値はに設定されていますfalse

于 2012-05-15T11:20:15.490 に答える