XML——使用 XPath来定位信息+使用命名空间
【0】README0.1)本文文字描述转自 core java volume 2 , 旨在理解 XML——使用 XPath来定位信息+使用命名空间 的基础知识 ; 【1】XPath 相关1)problem+solution (干货——XPath引入的原因)
2)看个荔枝:有下面的XML文档 <configuration>
<database>
<username>dbuser</username>
<password>dbuser</password>
.....
</database>
</configuration>
3)Java SE 5 增加了一个API来计算XPath表达式, 需要先从 XPathFactory 创建一个 XPath对象: XPathFactory xpf = XPathFactory.newInstance();
path = xpf.newXPath();
如果你有前一次计算得到的节点, 那么就可以调用: result = path.evaluate(expr,node);
【2】使用命名空间1)java用包来避免名字冲突,XML 也有类似的命名空间机制,可以用于元素名和属性名; (干货——XML的命名空间机制等同于java中的package)
http:// www.horstman.com/corejava ; http:// www.horstman.com/corejava/index.html;表示了不同的命名空间, 尽管web 服务器为这两个URL 提供相同的文档;
2)人们习惯于将解释该命名空间的文档放在 URL位置上。如,如果你把浏览器指向 XML Schema 的命名空间URL, 你就会发现一个描述XML Schema 标准的文档;
3)java中,使用import来指定很长的包名, 然后只需要使用较短类名;
<element xmlns="namespaceURI">
children
</element>
<element xmlns="namespaceURI1">
<child xmlns="namespaceURI2">
grandchildren
</child>
</element>
这样,第一个子元素和孙元素都是第二个命名空间的一部分了;
<xsd: schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd: element name="a" type="GridBagType">
</xsd: schema>
4)默认情况下, DOM 解析器并非“命名空间感知的”, 要打开命名空间处理特性: 请调用 DocumentBuilderFactory 类的 setNamespace Aware 方法: factory.setNamespaceAware(true);
(干货——开命名空间处理特性,factory.setNamespaceAware(true))
4)看个荔枝:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
限定名 = xsd :schema ;
命名空间 URI = http://www.w3.org/2001/XMLSchema ;
本地名=schema ;
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |