使用JDom從Java後臺給Flex前端傳遞xml資料

shilei22發表於2010-12-28
在Java作為伺服器時候在給前端傳遞資料的時候可能會遇到xml ,[b]在與flex互動中,
可以在Java端生成xml的字串傳到Flex端[/b]。

jdom 需要重網上下載 ,工程引入jdom.jar即可;

[b]flex端 接受 這個字串 ,並處理為xml物件[/b],在給tree繫結值
var xmlll:XML = new XML(xmlString);


Element root, name, age;//宣告xml節點
root = new Element("root"); // 建立 root 元素
Document myDocument = new Document(root); // 設定 "root" 為根節點
name = new Element("name"); //初始化元素
age = new Element("age");
Attribute attName= new Attribute("label","zhang"); //宣告節點屬性 並賦值
name.setAttribute(attName); //為節點新增屬性
age.addContent("24"); //給元素內容賦值
// 將address元素作為子元素,新增到root根元素中
root.addContent(name);

dome:
package com.xml;

import java.io.ByteArrayOutputStream;
import java.io.FileWriter;

import org.jdom.*;

import org.jdom.input.*;

import org.jdom.output.*;

public class CreateXML_01 {

Element root, name, age, sex, address, street, city, district; // 宣告xml元素

public CreateXML_01() {
root = new Element("root"); // 建立 root 元素
Document myDocument = new Document(root); // 設定 "root" 為根節點

// 建立XML文件中的其他元素,並初始化元素名
name = new Element("name");
age = new Element("age");
sex = new Element("sex");
address = new Element("address");
street = new Element("street");
city = new Element("city");
district = new Element("district");

// 給XML文件中的每一個元素新增內容值

//name.addContent("zhang");

Attribute attName= new Attribute("label","zhang");

name.setAttribute(attName);

age.addContent("24");

sex.addContent("male");

street.addContent("No.1 East Rood,ShangDi");

district.addContent("Hai Dian");

city.addContent("Bei Jing");
// 將street、district和city元素作為子元素,新增到address元素中

address.addContent(street);

address.addContent(district);

address.addContent(city);

// 將address元素作為子元素,新增到customer根元素中

root.addContent(name);

root.addContent(age);

root.addContent(sex);

root.addContent(address);

// try
//
// {
//
// // 建立XML檔案輸出流
//
// XMLOutputter fmt = new XMLOutputter();
//
// // 建立檔案輸出流
//
// FileWriter writer = new FileWriter("c:\\customer.xml");
//
// // 設定所建立的XML文件的格式
//
// Format f = Format.getPrettyFormat();
//
// fmt.setFormat(f);
//
// // 將生成的XML文件寫入到"c:\customer.xml"檔案中
//
// fmt.output(myDocument, writer);
//
// writer.close();
//
// }
//
// catch (Exception e) {
// e.printStackTrace();
// }

OutputToString(myDocument);

}

public static String OutputToString(Document document) {
ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
XMLOutputter docWriter = new XMLOutputter();
try {
docWriter.output(document, byteRep);
} catch (Exception e) {
e.printStackTrace();
}

System.out.println(byteRep.toString());
return byteRep.toString();
}

public static void main(String[] args) {
CreateXML_01 cm = new CreateXML_01();
}
}

Java後臺測試結果:
<?xml version="1.0" encoding="UTF-8"?>
<root><name label="zhang">zhang</name><age>24</age><sex>male</sex><address><street>No.1 East Rood,ShangDi</street><district>Hai Dian</district><city>Bei Jing</city></address></root>

參考http://hi.baidu.com/cq_yajun/blog/item/2cdce9c9796c09f152664fa8.html

相關文章