使用JDom从Java后台给Flex前端传递xml数据
在Java作为服务器时候在给前端传递数据的时候可能会遇到xml ,在与flex交互中,
可以在Java端生成xml的字符串传到Flex端。
jdom 需要重网上下载 ,工程引入jdom.jar即可;
flex端 接受 这个字符串 ,并处理为xml对象,在给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);
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();}}
<?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>