java - 如何获取xml的命名空间

标签 java xml

我有这个 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:VyuzitiPoskytnutinode.getNamespaceURI()node.getPrefix() 只给我 null。那么我如何获得节点的前缀呢?

最佳答案

尝试启用 namespace 支持:

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

来自JavaDoc对于 setNamespaceAware:

Specifies that the parser produced by this code will provide support for XML namespaces. By default the value of this is set to false

关于java - 如何获取xml的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10599566/

相关文章:

java - 在嵌入式 Tomcat 上从 Spring-Boot Web 应用程序运行 Python 脚本

javascript - 如何嵌入具有自定义样式的 xml 内容的 iframe?

jQuery XML Feed 到 ul 列表

html - 使用xsl在html中显示的xml中强制换行

Java Swing Die绘图

java - MongoDB 中的日期 : when inserting Date objects into Mongo database, 日期比自身早 1 天

波斯语(或阿拉伯语)数字的 Java NumberFormat

java - 导入 Blob 图像以在 Java 中进行测试

xml - Google 电子表格 ImportXML 的简单 Xpath

python - 当我在 Odoo 8 中编辑表单时,为什么标题显示记录 ID 号?