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下解析又有稍微的差别,找一个合适的时间,再整理。
本文详细介绍了JDOM API的基本概念及其在处理XML文档时提供的高效工具。重点阐述了JDOM的主要类库,包括Document、DOMBuilder、ProcessingInstruction、Element、Comment、XMLOutputter及DocType等,展示了如何利用这些类进行XML文件的读取、构建、处理和输出。同时,通过示例代码演示了如何通过JDOM API实现对XML文档的解析与数据提取,使得XML文档操作变得简单易行。
984

被折叠的 条评论
为什么被折叠?



