站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题如何用java生成xml

如何用java生成xml

摘要: 如何用java生成xml


-#60;map-#62;
-#60;layer id=1-#62;
-#60;/layer-#62;
-#60;/map-#62;
我引用了
import org.w3c.dom.*;
import javax.xml.parsers.*
请问是这样写的吗?
DocumentBuilderFactor factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder()
Document doc= builder.newDocument;
Element map=doc.createElement(-#34;map-#34;)
doc.appendChild(map);
Element layer=doc.createElement(-#34;layer-#34;)
layer.setAttribute(-#34;id-#34;,-#34;1-#34;);
map.appendChild(layer);



jdom完美整合java和xml


使用jdom吧,网上一搜一大片


可否给各例子



jdk自带的不行吗


那我通过jdom生产了document怎么再 转化为String ?
是document 的 tostring方法吗?


暑假生产实习做了一个Java对象与XML的相互转换项目,以下有个用java生成XML的例子,你可以参考一下,你应该一看就懂了:


import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
public class writexml{
private Document document;
private String filename;

public writexml(String name) throws ParserConfigurationException{
filename=name;
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
document=builder.newDocument();
}
public void toWrite(String mytitle,String mycontent){
Element root=document.createElement(-#34;WorkShop-#34;);
document.appendChild(root);
Element title=document.createElement(-#34;Title-#34;);
title.appendChild(document.createTextNode(mytitle));
root.appendChild(title);
Element content=document.createElement(-#34;Content-#34;);
content.appendChild(document.createTextNode(mycontent));
root.appendChild(content);

}
public void toSave(){
try{
TransformerFactory tf=TransformerFactory.newInstance();
Transformer transformer=tf.newTransformer();
DOMSource source=new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING,-#34;GB2312-#34;);
transformer.setOutputProperty(OutputKeys.INDENT,-#34;yes-#34;);
PrintWriter pw=new PrintWriter(new FileOutputStream(filename));
StreamResult result=new StreamResult(pw);
transformer.transform(source,result);
}
catch(TransformerException mye){
mye.printStackTrace();
}
catch(IOException exp){
exp.printStackTrace();
}
}
public static void main(String args[]){
try{
writexml myxml=new writexml(-#34;d://9.xml-#34;);
myxml.toWrite(-#34;中文题目-#34;,-#34;中文内容-#34;);
myxml.toSave();
System.out.print(-#34;Your writing is successful!-#34;);
}
catch(ParserConfigurationException exp){
exp.printStackTrace();
System.out.print(-#34;Your writing is failed!-#34;);
}
}
}



dom4j read xml
package com.scjp;

import java.io.File;
import java.io.FileWriter;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.dom4j.Node;


public class ParserXmlDom4j
{
public final static String filePath = -#34;com//scjp//MyXml.xml-#34;;

public Document parse(File file) throws DocumentException
{
SAXReader reader = new SAXReader();
Document document = reader.read(file);

return document;
}

public void getXml(Document document) throws DocumentException
{
Element root = document.getRootElement();
Iterator it = root.elementIterator();

//Iterator it = root.elementIterator(-#34;name-#34;);
//Iterator it = root.attributeIterator();
while (it.hasNext())
{
Element sub = (Element) it.next();
}
}

public void getNode(Document document) throws DocumentException
{
//List list = document.selectNodes(-#34;//row/person-#34;);
Node node = document.selectSingleNode(-#34;//row/person/name-#34;);
String value = node.getText();
System.out.println(-#34;value : -#34; + value);
}

public void writeXml() throws Exception
{
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement(-#34;root-#34;);
root.addComment(-#34;this is test xml file-#34;);
ArrayList children = new ArrayList();
Element ele1 = root.addElement(-#34;element1-#34;);
ele1.addAttribute(-#34;attr1-#34;,-#34;a-#34;);
ele1.addAttribute(-#34;attr2-#34;,-#34;b-#34;);
ele1.setText(-#34;this is element1-#34;);
Element ele2 = root.addElement(-#34;element2-#34;);
ele2.addAttribute(-#34;attr21-#34;,-#34;c-#34;);
ele2.setText(-#34;this is element2-#34;);

XMLWriter writer = null;
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter(new File(-#34;com//scjp//MyXml3.xml-#34;)),format);
writer.write(doc);
writer.close();


}

public static void main(String[] args)
{
ParserXmlDom4j pxd = new ParserXmlDom4j();

try
{

File file = new File(filePath);
Document document = pxd.parse(file);


Element root = document.getRootElement();
List list = root.selectNodes(-#34;//root/standards-#34;);
for(Iterator it = list.iterator();it.hasNext();)
{
Element subElement = (Element)it.next();
Attribute subAttr = subElement.attribute(-#34;type-#34;);
if(-#34;a3-#34;.equals(subAttr.getValue()))
{
for(Iterator ita = subElement.elementIterator(-#34;standard-#34;);ita.hasNext();)
{
Element belement = (Element)ita.next();
String sno = belement.attributeValue(-#34;sno-#34;);
System.out.println(-#34;sno : -#34;+sno );
}
/*
List a3List = subElement.selectNodes(-#34;/@sno-#34;);
for(Iterator it3 = a3List.iterator();it3.hasNext();)
{
Attribute attr3 = (Attribute)it3.next();
String novalue = attr3.getValue();
System.out.println(-#34;novalue : -#34;+ novalue);
}
*/
}
}

pxd.writeXml();
/*
List list = root.selectNodes(-#34;//root/standards/standard/@sno-#34;);
for(int i=0; i-#60;list.size(); i++)
{
Attribute attrs = (Attribute)list.get(i);
String no = attrs.getValue();
System.out.println(-#34;no value : -#34;+ no);
}
*/
/*
for(Iterator it = root.elementIterator(-#34;author-#34;); it.hasNext();)
{
Element sub = (Element)it.next();
String name = sub.attributeValue(-#34;name-#34;);
String location = sub.attributeValue(-#34;location-#34;);
String fulName = sub.getText();
System.out.println(-#34;name -#34;+name+-#34; location : -#34;+ location+-#34; fulName -#34;+ fulName);
}
*/
//pxd.getNode(doc);
//SAXReader reader = new SAXReader();
//Document document = reader.read(filePath);
/*
List list = document.selectNodes(-#34;//c/a/b/@color-#34;);

for (Iterator iter = list.iterator(); iter.hasNext();)
{
Attribute attribute = (Attribute) iter.next();
String color = attribute.getValue();
System.out.println(-#34;color : -#34;+ color);
if (color.equals(-#34;255.255.0-#34;))
{
attribute.setValue(-#34;0.0.0-#34;);
}
}
*/

}
catch (Exception e)
{
e.printStackTrace();
}
}
}

-#60;?xml version=-#34;1.0-#34; encoding=-#34;UTF-8-#34;?-#62;

-#60;!--
-#60;xml-body-#62;
-#60;config-#62;
-#60;font-#62;
-#60;name-#62;HanZi-#60;/name-#62;
-#60;size unit=-#34;pt-#34;-#62;36-#60;/size-#62;
-#60;/font-#62;
-#60;/config-#62;
-#60;/xml-body-#62;

-#60;row-#62;
-#60;person-#62;
-#60;name-#62;王小明-#60;/name-#62;
-#60;college-#62;信息学院-#60;/college-#62;
-#60;telephone-#62;6258113-#60;/telephone-#62;
-#60;notes-#62;男,1955年生,博士,95年调入海南大学-#60;/notes-#62;
-#60;/person-#62;
-#60;/row-#62;

-#60;c-#62;
-#60;a name=-#34;a-#34;-#62;
-#60;b color=-#34;255.255.0-#34;/-#62;
-#60;/a-#62;
-#60;a name=-#34;b-#34;-#62;
-#60;b color=-#34;255.255.1-#34;/-#62;
-#60;/a-#62;
-#60;/c-#62;

-#60;root-#62;
-#60;author name=-#34;James-#34; location=-#34;UK-#34;-#62;James Strachan-#60;/author-#62;
-#60;author name=-#34;Bob-#34; location=-#34;US-#34;-#62;Bob McWhirter-#60;/author-#62;
-#60;/root-#62;
---#62;

-#60;standards type=-#34;a3-#34;-#62;
-#60;standard sno=-#34;1-#34; svalue=-#34;400-#34; /-#62;
-#60;standard sno=-#34;3-#34; svalue=-#34;400-#34; /-#62;
-#60;/standards-#62;
-#60;standards type=-#34;b9-#34;-#62;
-#60;standard sno=-#34;1-#34; svalue=-#34;300-#34; /-#62;
-#60;/standards-#62;



用dom,jdom都可以阿


jdom!!!!!

XMLWriter writer = null;
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter(new File(-#34;MyXml.xml-#34;)),format);
writer.write(doc);
writer.close();



↑返回目录
前一篇: 关于DatagramSocket接收UDP数据时的效率问题
后一篇: 我想在body的onload事件中写一个function,让页面上所有的表格里的数据都变成可编辑状态,怎么做啊??