1、实现将文件读取。
2、然后使用xpath进行解析。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Node;
import org.dom4j.XPath;
public class ParseXML {
/**
* 根据xpath表达式解析 xml
* @param document
* @param xpathExp
* @return
*/
public static String xpath(String xml, String xpathExp) {
Document document=null;
System.out.println(xml);
try {
document = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
e.printStackTrace();
}
XPath xpath = document.createXPath(xpathExp);
Node node = xpath.selectSingleNode(document);
if (node != null) {
//取值
String val = node.getStringValue();
// System.out.println(node.asXML());
return node.asXML();
}
return null;
}
/**
* 读取文件
* @param fileName
* @return
*/
public static String readFile(String fileName) {
StringBuilder sb = new StringBuilder();
InputStream f=null;
BufferedReader br=null;
try {
f = new FileInputStream(fileName);
br = new BufferedReader(new InputStreamReader(f));
String line="";
while ((line = br.readLine()) != null) {
sb.append(line);
}
if(sb.length()>0) {
return sb.toString();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(br!=null)
br.close();
if(br!=null)
f.close();
} catch(Exception e) {
e.printStackTrace();
}
}
return null;
}
public static void main(String[] args) {
//将
String str = readFile("signpay.xml");
//获取signpay.xml中head的值
System.out.println(xpath(str,"/*/head"));
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何在STM32F107上使用minixml库解析XML(可扩展标记语言)文档,这对于那些初次尝试在嵌入式环境中处理XML数据的开发者来说,是非常有价值的。 XML是一种通用的数据交换格式,它允许结构...
本文将深入探讨如何使用C++来解析XML文件,主要围绕“C++实现对xml文件的解析”这一主题展开。 XML文件通常包含一系列元素,每个元素都有开始标签、结束标签和可能的属性。C++中解析XML文件的方法多种多样,这里...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
**SAX解析XML的基本原理:** SAX解析器以流式的方式读取XML文档,当遇到文档的各个元素时,会触发相应的事件,如开始文档、开始元素、结束元素、字符数据等。程序员通过实现SAX解析器的回调接口来处理这些事件,从而...
本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...
解析XML主要有两种方法:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析: DOM解析器将整个XML文档加载到内存中,创建一个树形结构,允许开发者通过节点遍历和操作XML数据。例如,`...
4. **解析XML**:使用ezxml库的核心函数`ezxml_parse()`解析XML文件。这个函数会返回一个ezxml_t类型的根节点,代表整个XML文档。然后,可以使用`child()`, `tag()`, `attr()`, `text()`等方法来遍历和访问XML树。 ...
以下是一个简单的Java SAX解析XML的示例代码: ```java import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; ...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Oracle数据库环境中解析XML文档。具体来说,文中提供了一个存储过程的例子,用于演示如何提取XML数据,并将其存储到Oracle表中。...
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
下面是一个简单的TinyXML解析XML文件的例子: ```cpp #include "tinyxml.h" int main() { TiXmlDocument doc("example.xml"); if (!doc.LoadFile()) { std::cerr !" ; return -1; } TiXmlElement* root = ...
在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...
这个“XmlPullParser解析Xml文件解析demo”应该包含了一个简单的示例,演示了如何将上述步骤应用于实际代码中。通过阅读和学习这个demo,开发者可以更好地理解如何在Android项目中运用XmlPullParser,提高XML处理的...
在Windows环境下,使用VC++作为开发工具,我们可以利用MSXML组件来解析XML文档并构建出相应的树结构。MSXML是Microsoft提供的一个COM组件,它提供了XML文档的读取、写入和操作功能,对于C++开发者来说,通过COM接口...
使用这个简易XML解析器,开发者可以轻松地在自己的项目中处理XML数据,无论是读取配置文件、解析XML数据交换还是生成XML报告。通过xCfgParser.h提供的接口,可以方便地集成到C++项目中,而无需依赖大型的XML解析库。...
下面是一个简单的使用PULL解析器解析XML并显示内容在`TextView`上的步骤: 1. 引入必要的库:在Android项目中,`XmlPullParser`是内置的,无需额外导入库。 2. 创建`XmlPullParser`实例:通常,我们可以使用`...
例如,使用DOM解析XML文件的简单步骤如下: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import java.io.File; public ...
C语言虽然不像Python或Java那样内置了强大的XML处理库,但依然可以通过一些第三方库来解析XML报文。本篇文章将深入探讨如何在C语言中实现XML报文的最精简解析方法。 首先,我们需要了解XML的基本结构。XML文档由...