xmlpull的使用

写了一个txt格式的配置文件。感觉让别人修改起来不是很清晰,于是选择使用XML格式文件。

首先了解下XML基本的语法:xml是一种标记语言,跟HTML类似。其设计宗旨是传输数据而非显示数据。

1:XML的所有元素都必须关闭标签。

2:XML对大小写敏感。

3:XML的属性值必须加引号。

4:把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

5:XML 的元素是可扩展的。

6:区分属性和元素。两者可以灵活转换。

7:XML必须有根元素。

下面说说XmlPull,百度一下和SAX,DOM这些的区别,巴拉巴拉。。。优势还是有的,难怪Google会用到Android上。

来个小例子测试下:

Test.java

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

public class Test {

	public static void creatBatFile() throws IOException, XmlPullParserException {
		String xml = read(new File(".\\sql\\sqlConfig.xml"));
		ByteArrayInputStream bin = new ByteArrayInputStream(xml.getBytes());
		InputStreamReader in = new InputStreamReader(bin);
		//KXmlParser parser = new KXmlParser();
		
		 	XmlPullParserFactory pullFactory = XmlPullParserFactory.newInstance();   
		    XmlPullParser parser = pullFactory.newPullParser();   
		try {
			parser.setInput(in);
			int eventType = parser.getEventType();
			while (eventType != XmlPullParser.END_DOCUMENT) {
				String nodeName = parser.getName();
				if (eventType == parser.START_TAG) {
					if (nodeName.equals("databaseName")) {
						String dataBaseName = parser.nextText();
						System.out.println(dataBaseName);
					} else if (nodeName.equals("userId")) {
						String userId = parser.nextText();
						System.out.println(userId);
					} else if (nodeName.equals("passWord")) {
						String password = parser.nextText();
						System.out.println(password);
					} else if (nodeName.equals("path")) {
						String mysqlPath = parser.nextText();
						System.out.println(mysqlPath);
					}
				}
				eventType = parser.next();
			}
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		}
	}
	
	public static String read(File src) {
		StringBuffer res = new StringBuffer();
		String line = null;
		try {
			BufferedReader reader = new BufferedReader(new FileReader(src));
			while ((line = reader.readLine()) != null) {
				res.append(line + "\n");
			}
			reader.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return res.toString();
	}
	
	public static void main(String[] args) throws IOException, XmlPullParserException {
		creatBatFile();
	}
}


sqlConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 该文件为数据库模块配置文件 -->
<sqlConfig>
	<databaseName>DATA</databaseName>
	<userId>root</userId>
	<passWord>123456</passWord>
	<path>"C:\Program Files\MySQL\MySQL Server 5.0\bin"</path>
</sqlConfig>

运行结果

DATA
root
123456
"C:\Program Files\MySQL\MySQL Server 5.0\bin"









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值