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();
				}
			}
		
		}
	}

继续总结中~~~微笑

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

相关文章推荐

Java生成和解析XML格式文件和字符串

1、基础知识: Java解析XML一般有四种方法:DOM、SAX、JDOM、DOM4J。 2、使用介绍 1)、DOM 由W3C(org.w3c.dom)提供的接口,它将整个XML文档读入内存,构建一个...

Java生成和解析XML格式文件和字符串的实例代码【dom4j中的SAXReader对象读取并解析xml文件】

文章来源:http://www.jb51.net/article/46893.htm 1、基础知识: Java解析XML一般有四种方法:DOM、SAX、JDOM、DOM4J。 2、使用介绍 1)、DO...

libxml2-解析xml格式文件

  • 2010年01月08日 15:41
  • 4.61MB
  • 下载

java socket报文通信(三)java对象和xml格式文件的相互转换

前两节讲了socket服务端,客户端的建立以及报文的封装。今天就来讲一下java对象和xml格式文件的相互转换。 上一节中我们列举了一个报文格式,其实我们可以理解为其实就是一个字符串。但是我们不...

使用第三方DOM解析XML格式文件

在解析XML格式文件的时候,使用SAX解析需要实现好多代理方法,比较难记,也容易出错,现在介绍一种由Google推出的第三方DOM(Document Object Model)来解析XML文件。首先将...

C语言解析WMV,ASF格式文件

  • 2013年10月27日 10:17
  • 12KB
  • 下载

stax和Do4j解析xml文件,并输出txt,zip,gz格式文件

stax和Do4j解析xml文件,并输出txt,zip,gz格式文件

Java利用mpxj解析mpp格式文件

MPXJ解析MPP文件, 同时获取每条子任务的父任务,并将子任务存储至数据库。

java解析TXT格式文件

java读取txt文件内容。可以作如下理解: 首先获得一个文件句柄。File file = new File();file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。 通过这条线路读...

vc写的xml格式文件读取

  • 2010年09月20日 18:22
  • 29KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 语言对XMl 格式文件的 纯解析
举报原因:
原因补充:

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