搜索
首页后端开发XML/RSS教程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

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
 <book category="COOKING">
   <title>Everyday Italian</title> 
   <author>Giada De Laurentiis</author> 
   <year>2005</year> 
   <price>30.00</price> 
 </book>
 <book category="CHILDREN">
   <title>Harry Potter</title> 
   <author>J K. Rowling</author> 
   <year>2005</year> 
   <price>29.99</price> 
 </book>
 <book category="WEB">
   <title>Learning XML</title> 
   <author>Erik T. Ray</author> 
   <year>2003</year> 
   <price>39.95</price> 
 </book>
</bookstore>

更多java使用xpath解析xml示例分享相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
XML修改属性值有何限制XML修改属性值有何限制Mar 03, 2025 pm 05:32 PM

本文详细介绍了修改XML属性值,突出了构成良好的限制,模式/DTD验证和字符编码。 它强调了陷阱,例如不当逃脱和数据类型不匹配,并解决了Securit

如何使用RSS feed进行新闻汇总和内容策划?如何使用RSS feed进行新闻汇总和内容策划?Mar 10, 2025 pm 03:47 PM

本文解释了如何使用RSS feed进行有效的新闻汇总和内容策划。 它详细介绍了使用RSS读取器(例如Feedly和Inoreader),组织供稿以及为目标内容的利用功能的订阅供稿。 利益

XML修改内容会影响性能吗XML修改内容会影响性能吗Mar 03, 2025 pm 05:27 PM

修改XML内容会显着影响应用程序性能,尤其是在大文件的情况下。 解析,DOM操纵,序列化和I/O操作有助于这一点。 优化策略包括使用流解析器,最小化D

XML如何修改大型XML文件XML如何修改大型XML文件Mar 03, 2025 pm 05:31 PM

本文处理有效的大型XML文件修改。 它突出了内存处理的效率低下,主张诸如SAX和Stax解析之类的流媒体方法。 优化策略包括增量解析,优化数据s

XML修改内容如何进行数据转换XML修改内容如何进行数据转换Mar 03, 2025 pm 05:25 PM

本文详细介绍了XML数据转换方法。 它解决了在XML文档中转换数据格式的挑战,突出了诸如XSLT和流处理之类的有效技术。 本文还涵盖了潜在的陷阱,例如SCH

如何使用RSS实施内容联合?如何使用RSS实施内容联合?Mar 10, 2025 pm 03:41 PM

本文详细介绍了使用RSS提要实施内容联合的内容。 它涵盖创建RSS提要,识别目标网站,提交提要以及监视效率。 诸如有限控制和丰富媒体支持之类的挑战也是铁饼

如何集成XML和语义Web技术?如何集成XML和语义Web技术?Mar 10, 2025 pm 05:50 PM

本文探讨了集成XML和语义网络技术。 核心问题是将XML的结构化数据映射到RDF三元组,以进行语义互操作性。 最佳实践涉及本体定义,战略映射方法,仔细的ATT

如何将ATOM发布协议用于Web内容管理?如何将ATOM发布协议用于Web内容管理?Mar 10, 2025 pm 05:48 PM

本文解释了用于Web内容管理的原子出版协议(ATOMPUB)。 它使用HTTP方法(获取,发布,PUT,删除)详细介绍了用于内容创建,检索,更新和删除的原子格式。 本文还讨论了Atompub

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具