Java通过XPath获取XML文件中符合特定条件的节点

在Java解析XML文件的过程中,有时需要获取符合某些特定条件的节点,以下是实现代码。

import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.w3c.dom.Element;
String value = new String("test");
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "//ElementName[@moduleName='" + value + "']";
Element element = null;
try {
 element = (Element) xpath.evaluate(expression, document,
  XPathConstants.NODE);
} catch (XPathExpressionException e) {
 e.printStackTrace();
}

以上程序的作用是,在所有ElementName节点中,找到一个属性moduleName为value的节点。

如果需要找到所有符合条件的节点,则需要将XPathConstants.NODE改为XPathConstants.NODESET。此时,返回值类型为NodeList类型,进行强制类型转换后即可对所有符合条件的节点进行进一步的操作。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: •对文件系统的访问提供了全面的支持 •提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Java只提供了File类来操作文件.文件夹本身,功能有限,性能也不高. NIO.2为解决这种缺陷,提供了Path接口,并提供了Paths.Files2个工具类,这2个工具类包含的方法都是静态方法,Files类提供了大量的静态方法来操作文件.文件夹. Path接口.Paths工具类使用示例: //获

  • Java NIO Path接口和Files类配合操作文件的实例

    Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路径,例如 / 或 C:\ ,而允许访问的根部件取决于文件系统: 2.以根部件开始的路径是绝对路径,否则就是相对路径: 3.静态的Paths.get方法接受一个或多个字符串,字符串之间自动使用默认文件系统的路径分隔符连接起来(Unix是 /,Windows是 \ ),这就解决了跨平台的问题,接着解析连接起来的结果,如果不是合法路径就抛出InvalidPathException异常,否则就

  • 使用Java7的Files工具类和Path接口来访问文件的方法

    在日期的java版本中,都是通过File类来访问文件,但是File类的操作有限,不能利用特定文件系统的特性,性能也不高.在访问出错时,很多都是直接返回false,并没有给出异常信息.因此Java7新增了Files和Paths两个工具类来操作文件.Files类中包含了大量的静态方法来操作文件.Java7还引入了一个Path接口,它代表的是与平台无关的平台路径,关于它的用法,下面会做详细的介绍. Paths提供了两个方法用来获取Path对象, 1.get(URL url) 2.get(String

  • 如何获取java新IO的Path文件大小

    这篇文章主要介绍了如何获取java新IO的Path文件大小,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 import org.junit.Test; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class TestFileSize { @Tes

  • 支付宝APP支付(IOS手机端+java后台)版

    0.介绍预览 针对需要在IOS手机上接入原生微信支付场景,调用微信进行支付.如图: 1.资料准备 1.1 账号注册 打开https://openhome.alipay.com,注册支付宝开放平台开发者账号 1.2 开发者认证 登录,进入开发者中心,进行开发者资质认证,并创建移动应用. 1.3 签约应用 创建应用后上传相关资料,上线应用并通过审核.审核通过后点击应用,进行签约,此步骤不能省略,否则或报ISV权限不足. 1.4 应用配置 打开应用信息,配置一下内容,接口签名可下载支付宝签名验签工具进

  • java文件操作之Path,Paths,Files

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.

  • Java通过XPath获取XML文件中符合特定条件的节点

    在Java解析XML文件的过程中,有时需要获取符合某些特定条件的节点,以下是实现代码. import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.eclipse.swt.widgets.Shell; import org.ec

  • python批量修改xml文件中的信息

    目录 项目场景: 问题描述: 分析: 解决方案: 总结 项目场景: 在做目标检测时,重新进行标注会耗费大量的时间,如果能够批量对xml中的信息进行修改,那么将会节省大量的时间,接下来将详细介绍如何修改标注文件xml中的相关信息. 问题描述: 例如:当我有一批标注好的xml文件,文件格式如下图所示 : <?xml version='1.0' encoding='us-ascii'?> <annotation> <folder>VOC2012</folder>

  • java实现利用String类的简单方法读取xml文件中某个标签中的内容

    1.利用String类提供的indexOf()和substring()快速的获得某个文件中的特定内容 public static void main(String[] args) { // 测试某个词出现的位置 String reqMessage = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + "<in>" + "<head&g

  • java使用OpenCV从视频文件中获取帧

    本文实例为大家分享了java使用OpenCV从视频文件中获取帧的具体代码,供大家参考,具体内容如下 实现功能:使用Java获取mp4.mov.avi等视频文件中的图像帧,每秒获取一帧图像,并保存 环境要求:需要安装Opencv,安装FFmpeg,下载javacv包 操作系统:本次实验使用的Ubuntu系统 实验代码 import com.googlecode.javacv.cpp.opencv_highgui; import org.opencv.core.Core; import org.op

  • Java基于正则表达式实现xml文件的解析功能详解

    本文实例讲述了Java基于正则表达式实现xml文件的解析功能.分享给大家供大家参考,具体如下: 这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node对象.xml文档树上的每一个节点都能看做一个Node对象,它拥有title.attribute和text三个自身变量以及一个childrenNode集合用来存放子节点,使用正则表达式完整装载. 一.编写N

  • Jmeter如何获取jtl文件中所有的请求报文详解

    前言 大家都知道Jmeter运行测试可以产生jtl文件,里边包含了整个脚本的请求返回以及各种设置.近期遇到一个问题给大家分享下,就是作为性能测试组,从自动化测试组中拿到了一堆jtl文件,需要自己提取其中的请求报文. 用Jmeter打开jtl文件可以看到,请求报文是xml报文,显示如下图: 把jtl文件改为txt文件,打开看到如下图: 内容还是比较多的,有N个请求,应该怎么提取呢,有Java基础的朋友应该可以使用代码直接提取,本人没有去实现,应该难度不是很大.那对于测试比较熟悉的我们,怎么使用jm

  • 怎样快速从一个XML文件中查找信息

    在网络时代,XML文件起到了一个保存和传输数据的作用.Soap协议通过Xml交流信息,数据库通过Xml文件存取等等.那么怎样快速的从一个XML文件中取得所需的信息呢? 我们知道,JAVA的JAXP中和Microsoft.Net都有Xml分析器,Microsoft.Net是边读边分析,而JAXP是读到内存中然后才进行分析(还有一种是事件机制去读),总而言之,是不利于快速读取.基于此,Microsoft.Net 和JAXP都提供了XPATH机制,来快速定位到XML文件中所需的节点. 例如有一个XML

  • JAVA通过XPath解析XML性能比较详解

    最近在做一个小项目,使用到XML文件解析技术,通过对该技术的了解和使用,总结了以下内容. 1 XML文件解析的4种方法 通常解析XML文件有四种经典的方法.基本的解析方式有两种,一种叫SAX,另一种叫DOM.SAX是基于事件流的解析,DOM是基于XML文档树结构的解析.在此基础上,为了减少DOM.SAX的编码量,出现了JDOM,其优点是,20-80原则(帕累托法则),极大减少了代码量.通常情况下JDOM使用时满足要实现的功能简单,如解析.创建等要求.但在底层,JDOM还是使用SAX(最常用).D

  • Java解析word,获取文档中图片位置的方法

    前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术,分别是HWPF(.doc)和XWPF(.docx).如果你对这两个技术熟悉的话,就应该能明白使用java解析word文档的痛楚所在. 其中两个最大的问题在于: 第一是这两个类并没有统一的父类和接口(隔壁的XSSF和HSSF投过来鄙视的眼光),所以没法进行同一格式的接口式编程: 第二是官方API中并

  • Spring如何在xml文件中配置Bean

    Spring容器是一个大工厂,负责创建.管理所有的Bean. Spring容器支持2种格式的配置文件:xml文件.properties文件,最常用的是xml文件. Bean在xml文件中的配置 <beans> 根元素,可包含多个<bean>元素,一个<bean>即一个Bean的配置. <bean> 一个<bean>即一个Bean对象.原来是new出来该类的一个对象,Spring中是一个<bean>创建一个对象. <bean na

随机推荐