`
流浪鱼
  • 浏览: 1681786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Java自带DOM工具解析XML

    博客分类:
  • java
 
阅读更多

xml文件的格式为

<?xml version="1.0" encoding="GBK"?>
<CIBOFP>
	<HEAD>
		<APPCODE>111111</APPCODE>
		<BUSCD>1104</BUSCD>
		<EXSERIAL>75</EXSERIAL>
		<DATE>20150518</DATE>
		<TIME>183320</TIME>
	</HEAD>
	<BODY>
		<CREDITAPPID>75</CREDITAPPID>
		<MORTGAGORNO>借款人编号</MORTGAGORNO>
		<MORTGAGORNAME>借款人名名</MORTGAGORNAME>
		<STATUS>2</STATUS>
		<LIMITLIST>
			<LIMIT>
				<FINANCINGTYPE>1</FINANCINGTYPE>
				<AMOUNT>100000</AMOUNT>
			</LIMIT>
			<LIMIT>
				<FINANCINGTYPE>1</FINANCINGTYPE>
				<AMOUNT>200000</AMOUNT>
			</LIMIT>
			<LIMIT>
				<FINANCINGTYPE>1</FINANCINGTYPE>
				<AMOUNT>300000</AMOUNT>
			</LIMIT>
		</LIMITLIST>
		<REMARK>备注</REMARK>
	</BODY>
</CIBOFP>

 java的解析方法

import java.io.FileInputStream;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/**
 * 测试使用java自带的xml解析器
 * @author test
 */
public class TestDomParse {

	public static void main(String[] args) {
		DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
		String filename = "E:\\workspaceeclipse\\common-xingye\\src\\main\\resources\\1004.xml";
		try {
			//产生解析实例
			DocumentBuilder dombuilder = domfac.newDocumentBuilder();
			//把XML文件读入放在FileInputStream中,并用其父类InputStream的实例接受
			InputStream is = new FileInputStream(filename);
			//根据输入XML文件流解析成Document结构,供下面遍历与操作使用
			Document doc = dombuilder.parse(is);
			//获取根结点CIBOFP
			Element root = doc.getDocumentElement();
			System.out.println(root.getTagName());
			//System.out.println(root.getTextContent());
			NodeList head= root.getElementsByTagName("HEAD");
			Node body= root.getElementsByTagName("BODY").item(0);
			
			//HEAD 的解析
			System.out.println(head.item(0).getNodeName()+"的解析开始");
			for(int i=0;i<head.getLength();i++){
				Node n = head.item(i);
				//System.out.println(n.getNodeName()+"    "+n.getTextContent());
				NodeList headNodeList = n.getChildNodes();
				for(int j=0;j<headNodeList.getLength();j++){
					Node hn = headNodeList.item(j);
					//使用hn.getNodeType()==Node.ELEMENT_NODE  防止打印空白
					if(hn.getNodeType()==Node.ELEMENT_NODE){
						System.out.println(hn.getNodeName()+"    "+hn.getTextContent());
					}
				}
				
			}
			
			//BODY的解析
			System.out.println(body.getNodeName()+"的解析开始");
			NodeList bodyList = body.getChildNodes();
			for(int a=0;a<bodyList.getLength();a++){
				Node n2 = bodyList.item(a);
				//防止打印空白
				//System.out.println(n.getNodeName()+" n type "+n.getNodeType());
				if(n2.getNodeType()==Node.ELEMENT_NODE){
					if(n2.getNodeName().equals("LIMITLIST")){
						System.out.println(n2.getNodeName()+"节点解析");
						//LIMITLIST 节点
						NodeList limitList = n2.getChildNodes(); 
						for(int b=0;b<limitList.getLength();b++){
							Node limit = limitList.item(b);
							//防止打印空白
							if(limit.getNodeType()==Node.ELEMENT_NODE){
								System.out.println(limit.getNodeName()+"节点解析");
								//LIMIT
								NodeList  t = limit.getChildNodes();
								for(int c=0;c<t.getLength();c++){
									Node l = t.item(c);
									//防止打印空白
									if(l.getNodeType()==Node.ELEMENT_NODE){
										System.out.println(l.getNodeName()+"    "+l.getTextContent());
									}
								}
								
							}
						}
					}else{
						System.out.println(n2.getNodeName()+"  "+n2.getTextContent());
					}
					
				}
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}

 解析还是比较费劲

 

 

 

 

 

 

分享到:
评论

相关推荐

    XML.rar_XML SAX_XML java_dom xml_java xml_java解析xml

    除了Java自带的解析库,还有第三方库如JAXB(Java Architecture for XML Binding)用于对象与XML之间的映射,以及DOM4J、XOM等提供更高级别的接口,简化XML处理。 5. 实战应用: 在实际项目中,根据需求选择合适的...

    JDK自带xml解析器dom+sax

    1. DOM解析XML: DOM解析器将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这种解析方式允许开发者通过节点名称快速访问和修改XML文档的任何部分。在提供的代码示例中,首先创建`DocumentBuilderFactory`...

    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 ...

    JDK自带方法解析xml特定格式的字符串

    本篇文章将详细探讨如何使用JDK自带的方法解析XML特定格式的字符串。 首先,我们需要了解JDK中处理XML的主要API,包括`javax.xml.parsers`包下的`DocumentBuilderFactory`和`DocumentBuilder`,以及`org.w3c.dom`包...

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

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

    解析xml文件需要的jar包

    Java中常用的解析XML的库有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM将整个XML文档加载到内存中,形成一个树形结构,适合小型XML文档。SAX是事件驱动的解析器...

    解析XML的四种JAR包jdom.jar、SAX.jar、dom4j.jar、dom.jar

    这里的dom.jar通常指的是Java自带的javax.xml.parsers包中的DOM解析器。Java标准版(JDK)提供了对DOM、SAX和DOM Level 3的内置支持。DOM解析器与JDOM类似,将整个XML文档加载到内存中形成一个树形结构,便于操作,...

    PULL解析xml的demo

    XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型

    dom4j创建与解析xml分析与实例

    与Java自带的DOM解析器相比,DOM4J更加灵活和高效,特别是在处理大型XML文档时表现更佳。 #### 二、DOM4J创建XML文档 ##### 1. 创建DOM4J文档对象 首先需要创建一个`Document`对象,这是DOM4J的核心类之一,用于...

    java_xml_api,java操作XML文档

    虽然Java自带的XML API已经很强大,但还有许多第三方库如DOM4J和JDOM提供了更高级的功能和更好的性能,开发者可以根据实际需求选择使用。 总结起来,Java XML API提供了全面的XML处理能力,涵盖了从解析到操作再到...

    解析Xml&Http请求DEMO

    对于DOM,可以使用JDOM或Java自带的DocumentBuilderFactory;对于SAX,可以使用DefaultHandler。解析完成后,我们可以提取出所需信息,例如,提取XML中的所有书籍信息,包括书名和作者。 总结起来,这个"解析Xml&...

    xml的快速解析(用第三方jar)

    相比Java自带的DOM解析器,dom4j更轻量级,解析速度更快,且使用起来更为方便。 **1. 添加dom4j依赖** 在项目中使用dom4j之前,首先需要将dom4j的jar文件添加到项目的类路径中。如果你的项目是Maven项目,可以在pom...

    Android 中解析xml

    以下是使用DOM解析XML的基本步骤: 1. 引入库:在Android项目中,需要导入`javax.xml.parsers`包。 ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; ``` 2....

    java_rean_writer_xml.rar_JSP读写XML_XML java_java Writer xml_java

    DOM解析器会将整个XML文档加载到内存中,形成一棵节点树,适合小规模的XML处理;而SAX解析器采用事件驱动模型,逐行读取XML,占用资源较少,适合处理大型XML文件。 在JSP中,我们可以使用JDK自带的`javax.xml....

    Java语言编程中更新XML文档的四种常用方法

    除了Java自带的API外,还有一些第三方库如Apache Crimson、Apache Xerces等提供了更高效、易用的方式来处理XML文档。这些库通常提供了更为丰富的功能和更好的性能优化。 优点: - 功能强大,提供了更多高级特性。 -...

    java读取xml文件生成文件

    此外,如果你不希望使用DOM解析,还可以考虑使用SAX(Simple API for XML)或StAX(Streaming API for XML),它们都是更高效且节省内存的解析方式。 在项目中,如果自带的jar包(如mylib下的jar包)提供了额外的...

    关于UI jeson解析和xml解析

    除了系统自带的解析器,还有如Apache的Pull解析库和Volley框架中的XmlPullParser工具,它们为XML解析提供了更方便的接口。 在Android UI开发中,JSON和XML通常与网络请求结合,用于获取服务器返回的数据。例如,...

    android解析XML文件样例SAX方法

    本篇文章将详细介绍如何在Android平台上使用SAX方法解析XML文件。 首先,我们需要在Android项目中引入SAX解析器。Android SDK自带了SAX解析器,因此无需额外添加依赖库。接下来,我们将按照以下步骤来解析XML文件:...

    对XML数据与JVAV对象之间的相互转换

    三、第三方库:除了Java自带的API外,还有一些优秀的第三方库,如Apache的`XStream`,它提供了一种更简洁的方式来绑定XML和Java对象。使用`XStream`,只需简单地定义一个Java类并注解,就可以方便地进行XML和Java...

Global site tag (gtag.js) - Google Analytics