几年前我为我的团队写了这篇文章.会有所帮助.
在XPath中,有七种节点:元素,属性,文本,名称空间,处理指令,注释和文档(根)节点.XML文档被视为节点树.树的根称为文档节点(或根节点).
考虑以下Xml文档.
<information>
<person id="1">
<name>Tito George</name>
<age>25</age>
<gender>Male</gender>
<dob>
<date>25</date>
<month>october</month>
<year>1983</year>
</dob>
</person>
<person id="2">
<name>Kumar</name>
<age>32</age>
<gender>Male</gender>
<dob>
<date>28</date>
<month>january</month>
<year>1975</year>
</dob>
</person>
<person id="3">
<name>Deepali</name>
<age>25</age>
<gender>Female</gender>
<dob>
<date>17</date>
<month>january</month>
<year>1988</year>
</dob>
</person>
</information>
Run Code Online (Sandbox Code Playgroud)
从文档中获取信息
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
//Getting the instance of DocumentBuilderFactory
domFactory.setNamespaceAware(true);
//true if the parser produced will provide support for XML namespaces;
DocumentBuilder builder = domFactory.newDocumentBuilder();
//Creating document builder
Document doc = builder.parse("C:\\JavaTestFiles\\persons.xml");
XPath xpath = XPathFactory.newInstance().newXPath();
//getting instance of xPath
expr = xpath.compile("//@id");
result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
Run Code Online (Sandbox Code Playgroud)
上面的红色行是用于编译xPath表达式的行,// @ id是实际的表达式.表达式@@ id将返回文档中属性id的值.即.程序的输出将是1 2和3.在下表中,您可以找到可以在本文档中使用的各种表达式.
上面代码片段中的两个重要陈述是
基本上: XML文档是树状结构(分层)节点集合.与分层目录结构一样,指定指向层次结构中特定节点的路径(因此指定的名称:XPath)非常有用.
实际上,目录路径的大部分符号都是完整的:
| 归档时间: |
|
| 查看次数: |
7360 次 |
| 最近记录: |