栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java使用xpath解析xml示例分享

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java使用xpath解析xml示例分享

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。

XPathTest.java
复制代码 代码如下:
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
复制代码 代码如下:


 
   Everyday Italian
   Giada De Laurentiis
   2005
   30.00
 

 
   Harry Potter
   J K. Rowling
   2005
   29.99
 

 
   Learning XML
   Erik T. Ray
   2003
   39.95
 




运行效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/152323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号