XML编程总结(七)——使用XPath对象查询xml文档
(七)使用XPath对象查询xml文档
XPath,一种为查询 XML 文档而设计的查询语言。XPath 并不是 Java 语言,事实上 XPath 不是一种完整的编程语言。有很多东西用 XPath 表达不出来,甚至有些查询也无法表达。幸运的是,可以把 XPath 结合到 Java 程序中,这样就能发挥两者的优势了:Java 做 Java 所擅长的,XPath 做 XPath 所擅长的。Java 程序执行 XPath 查询所需要的应用程序编程接口(API)还因形形色色的 XPath 引擎而各不相同。Xalan 有一种 API,Saxon 使用另一种,其他引擎则使用其他的 API。Java 5 推出了 javax.xml.xpath 包,提供一个引擎和对象模型独立的 XPath 库。
在 Java 中计算 XPath 表达式时,第二个参数指定需要的返回类型。有五种可能,都在javax.xml.xpath.XPathConstants 类中命名了常量:
- XPathConstants.NODESET
- XPathConstants.BOOLEAN
- XPathConstants.NUMBER
- XPathConstants.STRING
- XPathConstants.NODE
测试代码:
1 public class XPathTest { 2 /** 3 * 使用不带命名空间的XPath查询 4 * @throws Exception 5 */ 6 @Test 7 public void testRetrieveOndNode() throws Exception{ 8 //获得xml文档的内存模型 9 DocumentBuilder builder = DocumentBuilderFactory 10 .newInstance().newDocumentBuilder(); 11 Document document = builder.parse(new File("src/main/resource/books.xml")); 12 //创建XPathFactory对象 13 XPathFactory xPathFactory = XPathFactory.newInstance(); 14 //获得XPath对象 15 XPath xPath = xPathFactory.newXPath(); 16 //创建XPath表达式对象 17 XPathExpression nodeExpr = xPath.compile("//book[1]"); 18 //执行XPath表达式,因为该表达式只能获得一个节点,所以用XPathConstants.NODE 19 Element element = (Element) nodeExpr.evaluate(document, XPathConstants.NODE); 20 NodeList nodes = element.getChildNodes(); 21 for(int i=0;i<nodes.getLength();i++){ 22 Node node = nodes.item(i); 23 //获得节点类型 24 short nodeType = node.getNodeType(); 25 if(nodeType==Node.ELEMENT_NODE){ 26 //获得节点文本,getNodeValue()无法获得节点的文本 27 String text=node.getTextContent(); 28 System.out.println(node.getNodeName()+"--"+text); 29 } 30 } 31 } 32 }
转载于:https://www.cnblogs.com/techlogy/p/5965125.html
XML编程总结(七)——使用XPath对象查询xml文档相关推荐
- 使用 Visual C# .NET 通过 XPath 表达式查询 XML
本文演示如何使用 XPathNavigator 类通过 XML 路径语言 (XPath) 表达式查询 XPathDocument 对象.XPath 用于以编程方式计算表达式并选择文档中的特定节点. 回 ...
- Whois查询接口文档
Whois查询接口文档 whois(读作"Who is",非缩写)是用来查询域名的IP以及所有者等信息的传输协议.简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名 ...
- es内嵌文档查询_ElasticSearch 文档的增删改查都不会?
本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义. 我们先来看下这个表: 这个表包含了 Index.Create.Read. ...
- 基于Java毕业设计智友少儿编程学习平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计智友少儿编程学习平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计智友少儿编程学习平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...
- java excel 插入文件_Java 添加OLE对象到Excel文档
本文介绍通过Java程序添加OLE对象到Excel文档.OLE分为两种形式,一种通过嵌入(Embed),方式,一种通过链接(Link)方式.前者是将对象嵌入到文档中,外部对该对象的更改不影响嵌入操作时 ...
- 搜索引擎的检索模型-查询与文档的相关度计算
1. 检索模型概述 搜索结果排序时搜索引擎最核心的部分,很大程度度上决定了搜索引擎的质量好坏及用户满意度.实际搜索结果排序的因子有很多,但最主要的两个因素是用户查询和网页内容的相关度,以及网页链接情况 ...
- 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度
一个基于特征向量的近似网页去重算法--term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度 摘 要 在搜索引擎的检索结果页面中,用户经常会得到内容相 ...
- java access ole word,利用OLE对象实现Word文档操作
Word 是常用的字处理软件,在编程中充分利用现有的Word 文档就可以减少很多数据的处理.详细介绍了在ASP.NET 的程序中,利用数据库中的OLE 对象,实现Word文档的在线存取及预览. 1.引 ...
- 什么是document对象?如何获取文档对象上的元素?_dom对象
DOM对象 1. DOM树 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),通过 HTML DOM对象,可访问 JavaScript HTML 文档的所有 ...
最新文章
- 从农场女孩到首位图灵奖女性获得者,回顾法兰西斯·艾伦的辉煌一生
- python的编程模式-Python 编程,应该养成哪些好的习惯?
- python 统计文件夹各类格式文件数量, 具通用性
- js php调用webservice,js跨域调用WebService的使用方法
- OpenGL绘制二个不同颜色的三角形的实例
- 查询程序崩溃日志_PC 崩溃报告途径 amp; 临时解决方法
- python Web 之基石 - - CGI 编程 (基于python3)
- 基于深度残差网络的番茄叶片病害识别方法
- matlab连续投影算法SPA使用示例
- java 水仙花数问题(java50道经典编程题)
- tgp dnf服务器文件在哪,DNFTGP补丁使用说明及问题解决方案
- snownlp抛出错误_9snowNLP常见用法
- css 实现一个尖角_css实现气泡的小尖角效果
- 【干货】针对DNN的神经网络中上下文相关处理的连续学习概述
- 佳能无线打印机服务器,佳能LBP6018W打印机WIFI无线打印心得分享
- 4K智能AI双目自动跟踪云台摄像机
- 苹果手机怎么在照片上添加文字_要给照片快速添加文字、图框、印章,用这款手机软件比较方便...
- Unity Shader入门精要第四章:学习Shader 所需的数学基础--坐标空间
- tmail邮箱服务器,邮件服务器(一)Sendmail服务器1
- 人机大战?——带你玩转三子棋(C语言)