当前位置: 首页 > news >正文

java使用xpath解析xml,java使用XPath解析xml

XML文件:widgets.xml

widText

public static void examineXmlFile(String path) throws Exception {

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();

domFactory.setNamespaceAware(true); // never forget this!

DocumentBuilder builder = domFactory.newDocumentBuilder();

Document doc = builder.parse(path);

XPathFactory factory = XPathFactory.newInstance();

XPath xpath = factory.newXPath();

XPathExpression expr = xpath.compile("//node/@id");

Object result = expr.evaluate(doc, XPathConstants.NODESET);

NodeList nodes = (NodeList) result;

for (int i = 0; i < nodes.getLength(); i++) {

Node n = nodes.item(i);

System.out.println(nodes.item(i).getNodeValue());

}

}

另一个使用xPath的示例:ReadXMLbyXPath

package util.xml;

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.xml.sax.InputSource;

import org.xml.sax.SAXException;

import com.sun.org.apache.xpath.internal.NodeSet;

public class ReadXMLbyXPath {

public static void main(String[] arg ) throws XPathExpressionException, ParserConfigurationException, SAXException, IOException

{

// parse the XML as a W3C Document

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document document = builder.parse(new File("E:/workspace/Java-Util/src/util/xml/widgets.xml"));

XPath xpath = XPathFactory.newInstance().newXPath();

String expression = "/widgets/widget";

Node widgetNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);

System.out.println(widgetNode.getNodeName());//节点名称

System.out.println(widgetNode.getNodeValue());//节点值是null,为什么?

System.out.println(widgetNode.getTextContent());//节点text

}

}

相关文章:

  • php脚本防护,PHP的一个EVAL的利用防范
  • php中背景图怎么设置不重复,css怎么让背景图片不重复
  • java标签更改显示,离子选项卡,如何在标签更改上显示微调器?
  • java读写二进制文件 移动指针 seek,《Java大学教程》—第20章 文件处理
  • php权限无需验证的控制器,控制器 · ThinkPHP5权限管理 · 看云
  • 两'参数粒子群matlab,SVM用粒子群优化参数
  • 数据在文本框中显示 php,在文本框中使用php和纯ajax从数据库加载数据
  • 数字信号处理matlab滤波器,数字信号处理matlab滤波器课程设计
  • matlab逆求贝塞尔函数变量值,MATLAB怎么求解有贝塞尔函数的问题,求高手帮帮忙,谢谢...
  • java 继承 默认作用域,Spring(三)——Bean的 继承关系、依赖关系、作用域
  • matlab中的newfis,(To be removed) Create new fuzzy inference system
  • php apache 301重定向,Apache下修改.htaccess实现301重定向方法汇总
  • php一对多关联,SpeedPHP/数据表一对多关联
  • import matlab.engine,请教python导入matlab engine失败的问题。
  • php封装pdo连接书记库,PHP封装的PDO数据库操作类实例分析
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • AWS实战 - 利用IAM对S3做访问控制
  • Bytom交易说明(账户管理模式)
  • Consul Config 使用Git做版本控制的实现
  • HomeBrew常规使用教程
  • Java编程基础24——递归练习
  • JS数组方法汇总
  • laravel5.5 视图共享数据
  • LeetCode算法系列_0891_子序列宽度之和
  • sessionStorage和localStorage
  • ucore操作系统实验笔记 - 重新理解中断
  • 分享一份非常强势的Android面试题
  • 解析带emoji和链接的聊天系统消息
  • 正则表达式
  • UI设计初学者应该如何入门?
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #pragma 指令
  • #QT(智能家居界面-界面切换)
  • %@ page import=%的用法
  • (0)Nginx 功能特性
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (七)Knockout 创建自定义绑定
  • (四) 虚拟摄像头vivi体验
  • (转)iOS字体
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .sh
  • /etc/sudoers (root权限管理)
  • @FeignClient注解,fallback和fallbackFactory
  • @WebService和@WebMethod注解的用法
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [Android]如何调试Native memory crash issue
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [BJDCTF 2020]easy_md5
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强