[size=medium][b][color=darkred]创建Document基本操作[/color][/b][/size]
[b]说明:[/b]
[list]
[*]首先,需要创建Document对象,下面将通过Document对象进行节点,属性,值的配置;
[*]通过Document.addElement("节点名")创建节点,并将节点赋值给Element对象;
[*]通过Element.addAttribute("属性名","属性值"),在该Element节点下创建一个属性和设置其属性值;
[*]通过Element.setText("值")设置该Element对象节点的值;
[/list]
[size=medium][b][color=darkred]通过符合Document规范的格式生成Document对象[/color][/b][/size]
[b]说明:[/b]
[list]
[*]通过DocumentHelper.parseText(str);将字符串格式化为Document对象格式规范;
[*]str格式为例:"<?xml version='1.0' encoding='UTF-8'?><root><vehicle type='car'><Name>BMW</Name><price>200w</price></vehicle><vehicle type='freight vehicle'><Name>Benz</Name><price>100w</price></vehicle></root>";
[*]注意:抛出DocumentException异常,当字符串不符合Document对象格式规范时,将捕获这个异常;
[/list]
[size=medium][b][color=darkred]取得xml节点属性的基本方法[/color][/b][/size]
[b]说明:[/b]
[list]
[*]DocumentHelper.parseText(str);得到XML文档,作为Document对象;
[*]document.getRootElement();得到根节点;
[*]根节点对象.attributeValue("type");得到子节点属性;
[*]节点.element("需要取得的节点名");得到该节点的值;
[/list]
public static void BaseOperation() {
// 创建一个Document对象
Document document = DocumentHelper.createDocument();
// 创建一个根节点,根节点的名称为root
Element root = document.addElement("root");
// 为根节点root添加一个名称为"book"子节点
Element book1 = root.addElement("vehicle");
// 为book1添加属性"type",该属性参数为"science"
book1.addAttribute("type", "car");
// 为book1添加一个名称为"name"子节点
Element name1 = book1.addElement("Name");
// 并设置其"name"子节点的值为"Java"
name1.setText("BMW");
// 为"book1"再创建一个"price"子节点,并设其值为"100"
book1.addElement("price").setText("200w");
// 为根结点root添加第二个"book"子节点, 并设置该"book"子节点的"type"属性为"science"
Element book2 = root.addElement("vehicle").addAttribute("type", "wagon");
// 为book2添加"name"子节点
Element name2 = book2.addElement("Name");
// 并设置其"name"子节点的值为"Oracle"
name2.setText("Benz");
// 为book2创建一个"price"子节点,并设其值为200
book2.addElement("price").setText("100w");
// 输出XML在控制台
System.out.println(document.asXML());
}
[b]说明:[/b]
[list]
[*]首先,需要创建Document对象,下面将通过Document对象进行节点,属性,值的配置;
[*]通过Document.addElement("节点名")创建节点,并将节点赋值给Element对象;
[*]通过Element.addAttribute("属性名","属性值"),在该Element节点下创建一个属性和设置其属性值;
[*]通过Element.setText("值")设置该Element对象节点的值;
[/list]
[size=medium][b][color=darkred]通过符合Document规范的格式生成Document对象[/color][/b][/size]
/**
* 将字符串转化为Document
*
* @param str
* 输入的字符串
* @return 生成的document
* @throws DocumentException
*/
public static Document parserStrtoDocument(String str) {
Document document = null;
try {
document = DocumentHelper.parseText(str);
} catch (DocumentException e) {
e.printStackTrace();
System.out.println("cao");
}
return document;
}
[b]说明:[/b]
[list]
[*]通过DocumentHelper.parseText(str);将字符串格式化为Document对象格式规范;
[*]str格式为例:"<?xml version='1.0' encoding='UTF-8'?><root><vehicle type='car'><Name>BMW</Name><price>200w</price></vehicle><vehicle type='freight vehicle'><Name>Benz</Name><price>100w</price></vehicle></root>";
[*]注意:抛出DocumentException异常,当字符串不符合Document对象格式规范时,将捕获这个异常;
[/list]
[size=medium][b][color=darkred]取得xml节点属性的基本方法[/color][/b][/size]
/**
* 取得XML的节点和属性的值
* @throws DocumentException
*/
public static void getBaseInfofromDocument() throws DocumentException {
String str = "<?xml version='1.0' encoding='UTF-8'?><root><vehicle type='car'><Name>BMW</Name><price>200w</price></vehicle>"
+ "<vehicle type='freight vehicle'><Name>Benz</Name><price>100w</price></vehicle></root>";
// 生成一个Document,得到XML文档内容
Document document = DocumentHelper.parseText(str);
// 取得XML文档根结点
Element root = document.getRootElement();
// 通过根节点对象取得"vehicle"子节点
Element vehicle = root.element("vehicle");
// 根绝"book"节点对象取得"book"子节点的"type"属性值
String type = vehicle.attributeValue("type");
// 根据"book"节点对象取得"Name"子节点
Element name = vehicle.element("Name");
// 取得书名
String carname = name.getText();
// 取得书的价钱
String price = vehicle.element("price").getText();
// 输出书目信息
System.out.println("车名:" + carname);
System.out.println("类别:" + type);
System.out.println("价格:" + price);
}
[b]说明:[/b]
[list]
[*]DocumentHelper.parseText(str);得到XML文档,作为Document对象;
[*]document.getRootElement();得到根节点;
[*]根节点对象.attributeValue("type");得到子节点属性;
[*]节点.element("需要取得的节点名");得到该节点的值;
[/list]