源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java使用xpath解析xml示例分享

  • 时间:2022-11-30 19:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java使用xpath解析xml示例分享
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。 XPathTest.java
[u]复制代码[/u] 代码如下:
package com.hongyuan.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class XPathTest {  public static void main(String[] args) throws ParserConfigurationException,    SAXException, IOException, XPathExpressionException {   // 解析文件,生成document对象   DocumentBuilder builder = DocumentBuilderFactory.newInstance()     .newDocumentBuilder();   Document document = builder.parse(new File("bookstore.xml"));   // 生成XPath对象   XPath xpath = XPathFactory.newInstance().newXPath();   // 获取节点值   String webTitle = (String) xpath.evaluate(     "/bookstore/book[@category='WEB']/title/text()", document,     XPathConstants.STRING);   System.out.println(webTitle);   System.out.println("===========================================================");   // 获取节点属性值   String webTitleLang = (String) xpath.evaluate(     "/bookstore/book[@category='WEB']/title/@lang", document,     XPathConstants.STRING);   System.out.println(webTitleLang);   System.out.println("===========================================================");   // 获取节点对象   Node bookWeb = (Node) xpath.evaluate(     "/bookstore/book[@category='WEB']", document,     XPathConstants.NODE);   System.out.println(bookWeb.getNodeName());   System.out.println("===========================================================");   // 获取节点集合   NodeList books = (NodeList) xpath.evaluate("/bookstore/book", document,     XPathConstants.NODESET);   for (int i = 0; i < books.getLength(); i++) {    Node book = books.item(i);    System.out.println(xpath.evaluate("@category", book,      XPathConstants.STRING));   }   System.out.println("===========================================================");  } }
bookstore.xml
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="utf-8" ?> <bookstore>  <book category="COOKING">    <title lang="en">Everyday Italian</title>    <author>Giada De Laurentiis</author>    <year>2005</year>    <price>30.00</price>  </book>  <book category="CHILDREN">    <title lang="en">Harry Potter</title>    <author>J K. Rowling</author>    <year>2005</year>    <price>29.99</price>  </book>  <book category="WEB">    <title lang="en">Learning XML</title>    <author>Erik T. Ray</author>    <year>2003</year>    <price>39.95</price>  </book> </bookstore>
运行效果 [img]http://files.jb51.net/file_images/article/201403/20140323091252.jpg?20142239143[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部