100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java xpath 解析xml_Java XPath解析器 - 解析XML文档

java xpath 解析xml_Java XPath解析器 - 解析XML文档

时间:2023-10-18 01:37:55

相关推荐

java xpath 解析xml_Java XPath解析器 - 解析XML文档

使用XPath的步骤

以下是使用XPath解析器在解析文档时使用的步骤。

导入XML相关的软件包。

创建DocumentBuilder

从文件或数据流创建一个文档

创建XPath对象和XPath的路径表达式

编译XPath表达式使用pile() ,并由XPath.evaluate()评估计算获得一个节点列表

遍历节点列表。

检查属性

检查子元素

导入XML相关的软件包

importorg.w3c.dom.*;importorg.xml.sax.*;importjavax.xml.parsers.*;importjavax.xml.xpath.*;importjava.io.*;

创建DocumentBuilder

DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();

从文件或数据流创建一个文档

StringBuilderxmlStringBuilder=newStringBuilder();xmlStringBuilder.append("<?xml version="1.0"?> ");ByteArrayInputStreaminput=newByteArrayInputStream(xmlStringBuilder.toString().getBytes("UTF-8"));Documentdoc=builder.parse(input);

构建XPath

XPathxPath=XPathFactory.newInstance().newXPath();

准备路径表达式,并计算它

Stringexpression="/class/student";NodeListnodeList=(NodeList)pile(expression).evaluate(doc,XPathConstants.NODESET);

遍历节点列表

for(inti=0;i

检查属性

//returns specific attributegetAttribute("attributeName");//returns a Map (table) of names/valuesgetAttributes();

检查子元素

//returns a list of subelements of specified namegetElementsByTagName("subelementName");//returns a list of all child nodesgetChildNodes();

演示示例:

这里是我们需要分析输入文本文件:

dinkar

kad

dinkar

85

Vaneet

Gupta

vinni

95

jasvir

singh

jazz

90

演示示例:

XPathParserDemo.java

packagecom.yiibai.xml;importjava.io.File;importjava.io.IOException;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.xpath.XPath;importjavax.xml.xpath.XPathConstants;importjavax.xml.xpath.XPathExpressionException;importjavax.xml.xpath.XPathFactory;importorg.w3c.dom.Document;importorg.w3c.dom.NodeList;importorg.w3c.dom.Node;importorg.w3c.dom.Element;importorg.xml.sax.SAXException;publicclassXPathParserDemo{publicstaticvoidmain(String[]args){try{FileinputFile=newFile("input.txt");DocumentBuilderFactorydbFactory=DocumentBuilderFactory.newInstance();DocumentBuilderdBuilder;dBuilder=dbFactory.newDocumentBuilder();Documentdoc=dBuilder.parse(inputFile);doc.getDocumentElement().normalize();XPathxPath=XPathFactory.newInstance().newXPath();Stringexpression="/class/student";NodeListnodeList=(NodeList)pile(expression).evaluate(doc,XPathConstants.NODESET);for(inti=0;i

这将产生以下结果:

Current Element :student

Student roll no : 393

First Name : dinkar

Last Name : kad

Nick Name : dinkar

Marks : 85

Current Element :student

Student roll no : 493

First Name : Vaneet

Last Name : Gupta

Nick Name : vinni

Marks : 95

Current Element :student

Student roll no : 593

First Name : jasvir

Last Name : singh

Nick Name : jazz

Marks : 90

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。