Java 语言对XMl 格式文件的 纯解析

原创 2016年06月29日 21:13:02

目的: 解析XML文件,把解析出的文件写到文档中保存

XML: 文件是一种可扩展标记语言,是很像HTML的标记语言;XML的设计宗旨是传输数据,而不是现实数据;XML的标签并没有被预定义,需要使用者自行定义,XML因此被设计成

一种具有自我描述性的语言。

XML和HTML之间的区别:

XML不是HTML的替代

XML被设计用来传输和存储数据,其焦点是数据的内容

HTML被设计用来显示数据,其焦点是数据的外观

XML旨在传输数据,HTML旨在显示数据

XML是各种应用程序之间进行数据传输最常用的工具。

看下面一个简单的实例:

实例是 Jani 写给 Tove 的便签,存储为 XML:

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

XML的解析分析:

XMl是用来存储数据的,标签是数据的名称,两个标签之间的信息为标签的内容。这里为大家事例对XML文件通用的解析格式:标签名:内容。对XML文件的纯解析,基本思想是每行每行的进行解析,而每行要么有一对尖括号,要么有两对尖括号,每行都有一个共同的特点就是:每行的末尾都有一个换行符 ‘’\r\n’’;解析时用变量记录每一个 ’<’ 和每一个 ’>’ 。

当记录到第一个 ‘>’ 的时候,把尖括号中的字符串输出,当遇到换行符 ‘ \r\n’ 的时候,把记录 ‘<’ 和 ‘>’ 的值,还有记录字符串的值 全都置0,然后开始进行解析下一行,解析时遇到第二个 ‘<’ 时 把记录的两个尖括号之间的字符串输出,然后等到遇到这一行的换行符 ’\r\n’ 时,把用于记录的变量全部置 0  

我这里把代码进行了输出:

代码如下:

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo {
	public static void mian(String args[]){
		String path = "F:/XML/nod.xml";
		String topath="F:/XML/nod1.txt";
		fun(path,topath);
		
	}
	
	/**
	 * 
	 * @param path
	 * @param topath
	 * 解析xml
	 */
	public static void fun(String path,String topath){
		FileReader read = null;
		FileWriter writ = null;
		try{
			read = new FileReader(path);
			writ = new FileWriter(topath);
			
			
			char c,c1 = 0,c2 = 0;
			String str;
			String ss="";
			String ss1="";
			String ss2="";
			String ss3="";
			int ct=0,ct1=0,ct2=0;
			int a=0;
			while(true){ 	//单个读取字符
				int temp = read.read();
				if (temp == -1) {
					break;
				}
				c= (char)temp;
	            str = String.valueOf(c);
	          
	            /**
	             * 当ss为换行时,每行的内容已解析好,此时开始下一行内容的解析,把所有值重置,开始下一行
	             */
	            if(ss.equals("\r\n")){	
	            	ss="";
	            	ct1=0;
	            	ct2=0;		  
	            	writ.write("\r\n");
	            	System.out.println();
	            //	continue;
	            	
	            }
	            
	            /**
	             * 第一次碰到<退出,第二次碰到,输出每行<>asd<>中的内容:asd
	             */
	            if(c=='<'){
	            	ct1++;
	            	if(ct1==2){
	            		
	            		writ.write(" : ");
	            		writ.write(ss);
	            		System.out.print(ss);
	            		ss="";		            		
	            	}
	            	continue;
	            }
	            /**
	             * 第一次碰到>,输出每行第一个<>中的内容
	             */
	            if(c=='>'){
	            	ct2++;
	            	if(ct2==1){
	            		System.out.print(ss);
	            		writ.write(ss);
	            		ss="";		            		
	            	}
	            	continue;
	            }
	            /**
	             * 当碰到每行最后一个>时,此时ss的内容为第二个<>中的内容,清空ss,让ss接收换行符\r\n
	             */
	           if(ct1==2&&ct2==2){
	        	   ss="";
	        	   ct1=0;
	        	   ct2=0;
	           }
	            ss+=str;		            	
	            
	            

			}
			
		}catch(IOException e){
			e.printStackTrace();
		}finally{
			if(read!=null){
				try{
					read.close();
					writ.close();
				}catch(IOException e){
					e.printStackTrace();
				}
			}
		
		}
	}

继续总结中~~~微笑

版权声明:本文为博主原创文章,未经博主允许不得转载。

来到c语言世界

2016年2月8日            今天是我第一次写博客,心情有些许激动。当我来到csdn社区时,看到的仿佛是一个新的世界,没错,是全球最大IT技术社区,这里有着数不清的技术员,他们汇聚于此,...
  • xudongdong6009
  • xudongdong6009
  • 2016年02月08日 12:22
  • 186

Java解析XML的四种方法详解

Java解析XML的四种方法详解 XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法 XML现在已经成为一...
  • dongfengkuayue
  • dongfengkuayue
  • 2015年12月09日 19:00
  • 117107

详解Java解析XML的四种方法

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。         XML现在已经成为一种通用的数据交换格式,它的平台无...
  • hmiter
  • hmiter
  • 2017年02月14日 21:02
  • 8892

java中四种方式解析XML文件

1.DOM方式解析XML Dom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的一种基础的解析XML文件的API,理解较...
  • clemontine
  • clemontine
  • 2016年11月02日 20:09
  • 3638

java解析xml的几种方式

【目录】 一、【基础知识——扫盲】 二、【DOM、SAX、JDOM、DOM4j简单使用介绍】 三、【性能测试】 四、【对比】 五、【小插曲XPath】 六、【补充】...
  • u012868901
  • u012868901
  • 2016年05月26日 15:12
  • 2882

XML解析——Java中XML的四种解析方式

XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。   XML的解析方式...
  • RickyIT
  • RickyIT
  • 2016年12月22日 13:53
  • 8500

XML基础+Java解析XML +几种解析方式的性能比较

XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据、存储数据、传输(交换)数据。 XML与HTML区别: 目的不一样 XML...
  • u014352836
  • u014352836
  • 2015年06月26日 10:18
  • 2630

Java解析XML的四种方式

Java对xml文档的四种解析方式: DOM、SAX、 (系统提供,与平台无关) DOM4J、JDOM (第三方提供,只在java中使用)...
  • u014438534
  • u014438534
  • 2016年12月30日 21:32
  • 779

XML格式文件解析

PHP解析XML,注释很全
  • momDIY
  • momDIY
  • 2016年12月21日 18:21
  • 173

生成和解析XML格式文件

1、基础知识: Java解析XML一般有四种方法:DOM、SAX、JDOM、DOM4J。 2、使用介绍 1)、DOM (1)简介 由W3C(org.w3c.dom)提供的接口,它将整个XML...
  • zl834205311
  • zl834205311
  • 2015年07月23日 14:02
  • 212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 语言对XMl 格式文件的 纯解析
举报原因:
原因补充:

(最多只允许输入30个字)