`

简单的解析xml

 
阅读更多

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"));
	}
}
 
分享到:
评论

相关推荐

    STM32解析XML

    在本文中,我们将深入探讨如何在STM32F107上使用minixml库解析XML(可扩展标记语言)文档,这对于那些初次尝试在嵌入式环境中处理XML数据的开发者来说,是非常有价值的。 XML是一种通用的数据交换格式,它允许结构...

    C++解析xml文件

    本文将深入探讨如何使用C++来解析XML文件,主要围绕“C++实现对xml文件的解析”这一主题展开。 XML文件通常包含一系列元素,每个元素都有开始标签、结束标签和可能的属性。C++中解析XML文件的方法多种多样,这里...

    java 解析xml 多级

    Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...

    Sax解析XML文件解析

    **SAX解析XML的基本原理:** SAX解析器以流式的方式读取XML文档,当遇到文档的各个元素时,会触发相应的事件,如开始文档、开始元素、结束元素、字符数据等。程序员通过实现SAX解析器的回调接口来处理这些事件,从而...

    android下解析xml文件的demo

    本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...

    xml 解析 xml 解析几何

    解析XML主要有两种方法:DOM(Document Object Model)和SAX(Simple API for XML)。 1. DOM解析: DOM解析器将整个XML文档加载到内存中,创建一个树形结构,允许开发者通过节点遍历和操作XML数据。例如,`...

    STM32使用ezxml解析XML文件

    4. **解析XML**:使用ezxml库的核心函数`ezxml_parse()`解析XML文件。这个函数会返回一个ezxml_t类型的根节点,代表整个XML文档。然后,可以使用`child()`, `tag()`, `attr()`, `text()`等方法来遍历和访问XML树。 ...

    关于解析xml的一些demo

    以下是一个简单的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

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Oracle数据库环境中解析XML文档。具体来说,文中提供了一个存储过程的例子,用于演示如何提取XML数据,并将其存储到Oracle表中。...

    java解析xml字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    C++解析xml之完整代码(完整解析)

    下面是一个简单的TinyXML解析XML文件的例子: ```cpp #include "tinyxml.h" int main() { TiXmlDocument doc("example.xml"); if (!doc.LoadFile()) { std::cerr !" ; return -1; } TiXmlElement* root = ...

    JAVA调用webservice并解析xml

    在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...

    XmlPullParser解析Xml文件解析demo

    这个“XmlPullParser解析Xml文件解析demo”应该包含了一个简单的示例,演示了如何将上述步骤应用于实际代码中。通过阅读和学习这个demo,开发者可以更好地理解如何在Android项目中运用XmlPullParser,提高XML处理的...

    解析XML文档 实现树结构实例

    在Windows环境下,使用VC++作为开发工具,我们可以利用MSXML组件来解析XML文档并构建出相应的树结构。MSXML是Microsoft提供的一个COM组件,它提供了XML文档的读取、写入和操作功能,对于C++开发者来说,通过COM接口...

    简易XML解析器

    使用这个简易XML解析器,开发者可以轻松地在自己的项目中处理XML数据,无论是读取配置文件、解析XML数据交换还是生成XML报告。通过xCfgParser.h提供的接口,可以方便地集成到C++项目中,而无需依赖大型的XML解析库。...

    使用Android自带的XML解析器PULL解析器简单的解析xml

    下面是一个简单的使用PULL解析器解析XML并显示内容在`TextView`上的步骤: 1. 引入必要的库:在Android项目中,`XmlPullParser`是内置的,无需额外导入库。 2. 创建`XmlPullParser`实例:通常,我们可以使用`...

    java在线解析xml

    例如,使用DOM解析XML文件的简单步骤如下: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import java.io.File; public ...

    c解析xml报文最精简的

    C语言虽然不像Python或Java那样内置了强大的XML处理库,但依然可以通过一些第三方库来解析XML报文。本篇文章将深入探讨如何在C语言中实现XML报文的最精简解析方法。 首先,我们需要了解XML的基本结构。XML文档由...

Global site tag (gtag.js) - Google Analytics