您的位置:首页 > 其它

在项目中使用jdom,由于项目中频繁使用,所以做下记录

2012-02-03 09:36 387 查看
Jdom 是用Java 语言读、写、操作XML 的新API 函数。

Jdom 是一个开源的api,它以直接易懂的方式向java 程序员描述XML 文档和文档的内

容。就象名字揭示的那样,Jdom 是为java 优化的。为使用 XML 文档提供一个低消耗的方

法。Jdom 的使用者可以不必掌握太多的XML 的知识就可以完成想要的操作。

JDOM 主要类库

1、 Document 类:

Document 类定义了一个 XML 文件的各项行为,用户可以通过它所提供的方法来存取

根元素以及存取处理命令/文件层次的相关信息。

2、 DOMBuilder 类

DOMBuilder 类用来建立一个JDOM 结构树

3、 ProcessingInstruction 类

ProcessingInstruction 类定义了一个XML 处理命令的各项行为,用户可以通过它所提供

的方法得到处理命令的对象以及数据。可以通过字符串来存取数据,只要许可也可以通过“名

称/数值”的方式来提取数据。

4、 Element 类:

Element 类定义了一个 XML 元素的各项行为,用户可以通过它所提供的方法得到元素

的文字内容、属性值以及子节点。

5、 Comment 类

Comment 类定义了一个XML 注释的所有行为。

6、 XMLOutputter 类

XMLOutputter 类回将一个 JDOM 结构树格式化为一个XML 文件,并且以字符串流的 方式加以输出

7、 DocType

DocType 类代表一个XML 文件的DOCTYPE 声明。

/**

* @author lnman

*

* To change the template for this generated type comment go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

import org.jdom.input.*;

import org.jdom.*;

import java.util.*;

public class ReadXML

{

public static void main(String[] args) throws Exception

{

//实例化一 SAXBuilder 对象builder,用来建立JDOM 结构树

SAXBuilder builder = new SAXBuilder();

//使用builder 方法,在现有文件基础上,建立一个XML 文件

Document read_doc = builder.build("studentinfo.xml");

//从Document 中读取一个根元素

Element stu = read_doc.getRootElement();

//得到根元素下的自元素 student,返回类型为一List 对象

List list = stu.getChildren("student");

for(int i = 0;i < list.size();i++)

{

//取处一 student 元素

Element e = (Element)list.get(i);

//从student 元素下,读出其子元素number,name,age

String str_number = e.getChildText("number");

String str_name = e.getChildText("name");

String str_age = e.getChildText("age");

System.out.println("---------STUDENT--------------");

System.out.println("NUMBER:" + str_number);

System.out.println("NAME:" + str_name);

System.out.println("AGE:" + str_age);

System.out.println("------------------------------");

System.out.println();

}

}

、、、、也可以一下方式

public static List xml2foodBill(String xmlDoc) {

StringReader read = new StringReader(xmlDoc);

// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入

InputSource source = new InputSource(read);

// 创建一个新的SAXBuilder

SAXBuilder sb = new SAXBuilder();

ArrayList<FoodBill> foodBills = null;

// 如果xmlDoc 不为空,就初始化foodBills数组

if (!xmlDoc.equals(""))

foodBills = new ArrayList<FoodBill>();

FoodBill foodBill = new FoodBill();

try {

// 通过输入源构造一个Document

Document doc = sb.build(source);

// 取的根元素

Element root = doc.getRootElement();

List list = root.getChildren();

Element e = null;

for (int i = 0; i < list.size(); i++) {

e = (Element) list.get(i);

foodBill.setFoodCode(e.getChildText("foodCode"));

foodBill.setFoodname(e.getChildText("foodname"));

foodBill.setQuantity(Double.parseDouble(e

.getChildText("quantity")));

foodBill.setBarcode(e.getChildText("barcode"));

foodBill.setCancelNum(e.getChildText("cancelNum"));

foodBill.setCancelReason(e.getChildText("cancelReason"));

foodBill.setOperandis(e.getChildText("operandis"));

foodBill.setPaidType(e.getChildText("paidType"));

foodBill.setTastes(e.getChildText("tastes"));

foodBills.add(foodBill);

}

} catch (JDOMException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return foodBills;

}

当然在android下解析又有稍微的差别,找一个合适的时间,再整理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: