`

简单的解析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"));
	}
}
 
分享到:
评论

相关推荐

    简单的XML解析的例子

    几种解析XML方法的简单的例子 XML 解析XML

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

    使用Android自带的XML解析器PULL解析器简单的解析xml,并将内容显示在TestView上,代码简化过。

    TinyXML是一个开源的解析XML的解析库

    TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。 这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便...

    关于解析xml的一些demo

    网上找的解析xml文件的demo,自己拷贝了过来然后试了试,最后我觉得字数应该是够了。

    php快速解析xml

    php快速解析xml已经试过,很好用。内赋了简单的使用方法,可以仿照例子进行解析。

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

    开发环境为VC,基于对话框,用msxml组件解析XML文档,运用递归循环的方法实现树结构,支持中文,可以运行的一个实例。

    oracle 解析xml

    oracle 解析 xml 简单直接 xmldom

    SQL 解析XML数据示例

    本示例代码简单示范了SQLServer如何解析xml文档

    Sax解析xml文件

    Sax解析xml文件详细例子,解析复杂节点的xml,把内容显示到view中,例子简单完整,易用

    full方式解析xml

    使用full方式解析xml,简单高效,是android中最常用的解析xml方式

    用jdom解析xml

    这是我做的简单的一个在jsp中用jdom解析xml的程序。只是显示,添加等简单的功能,来学习学习jdom解析xml的程序。如果你想学习那这一定是个很好的例子

    C++ 使用TinyXML解析XML文件 源码

    C++ 使用TinyXML解析XML文件,简单清晰,仅供参考。读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库

    用jdom解析xml文件

    一个关于用jdom解析xml,遍历xml,建立xml的简单例子.

    xml 文件解析,可以在vc中直接使用的简易xml解析工具,方便简单快截

    xml 文件解析,可以在vc中直接使用的简易xml解析工具,方便简单快截

    xml-vc解析xml文档

    我写的用VC解析xml文件,通过MSXML,比较简单,不过是个好例子,很小,例子是CHINAmap2008中的城市,飞机,机场xml文件,希望能有小用。

    PULL解析xml的demo

    XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据; 优点:简单直观,但需要将文档读取到内存, 缺点:并不太适合移动设备; 2,SAX SAX是一...

    QT使用TinyXML开源库解析XML文件

    QT5.9.1 + MSVC2015 一个简单解析XML文件的例子,很简单;

    Qt5 XML 解析

    用Qt的QDomDocument解析XML,获取一个个节点出来,比较简单。 用Qt的QDomDocument解析XML,获取一个个节点出来,比较简单。 用Qt的QDomDocument解析XML,获取一个个节点出来,比较简单。

    简易XML解析器

    简易XML解析器. 只需要包含xCfgParser.h。其它文件为附加支持文件,你可以很简单的就去掉他们。压缩包里还包含一个字符串转换类。可以用来UTF-8/Unicode/Ansi之间进行转换

    DOM解析xml文件实例讲解

    android为我们提供了多种解析方式,DOM解析,代码操作简单,一直为解析xml文件的一个不错的选择

Global site tag (gtag.js) - Google Analytics