在项目中使用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下解析又有稍微的差别,找一个合适的时间,再整理。
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下解析又有稍微的差别,找一个合适的时间,再整理。
相关文章推荐
- 这次项目用到mysql,而有频繁使用到权限问题,所以在此记录下相关的命令
- asp.net Web项目中使用Log4Net进行错误日志记录
- 计划将项目中使用entity framework的要点记录到改栏目下
- A2W,W2A等转换函数,由于使用的比较平繁,所以程序内存一直上涨,导致崩溃
- 在项目中使用log4net记录日志
- 正则表达式使用总结--记录项目中遇到的自己未解决的正则
- C++项目使用的开源库记录
- 由于使用SVN 造成的项目无法使用的问题,报错“项目刷新失败,无法从服务器中检索文件夹信息
- 使用yeoman起一个新项目(个人练习记录,勿喷!)
- 使用gyp构建项目,使用ninja更快的编译,以及使用出现和解决的问题记录
- 项目中oracle存储过程记录——经常使用语法备忘
- 关于Apache 工具包的一些记录,希望以后项目可以多多使用。
- eclipse Maven 使用记录 ------ 建立app项目
- asp.net Web项目中使用Log4Net进行错误日志记录
- Windows下Git使用记录--03 Git GUI与金山快盘组建私人代码仓库进行项目开发
- Google开源OCR项目Tesseract安装版在Windows下的使用测试记录
- ios 人为抛出异常 --- 但不建议在项目中频繁使用
- 做项目代码 练习代码 记录错误使用:
- 记录篇,自己在项目中使用过的。
- Shiro 项目开发中第一次使用到,所以研究了一下,这里