Element root = doc.getRootElement(); System.out.println(root.getAttributeValue("width")); List ls = root.getChildren();//注意此处取出的是root节点下面的一层的Element集合 for (Iterator iter = ls.iterator(); iter.hasNext(); ) { Element el = (Element) iter.next(); if(el.getName().equalsIgnoreCase("to")){ List ls2 = el.getChildren(); for(Iterator iter2 = ls2.iterator(); iter2.hasNext();){ Element e2 = (Element)iter2.next(); if(e2.getTextTrim().equals("to1")){ e2.setText("I have bean changed in this element."); System.out.println(e2.getName()); continue; } System.out.println(e2.getName()); } continue; } System.out.println(el.getText());
package run; import org.jdom.*; import org.jdom.output.*; import java.io.*; public class WriteXML{ public void BuildXML() throws Exception { Element root,student,number,name,age,firstname,lastname; root = new Element("student-info"); //生成根元素:student-info student = new Element("student"); //生成元素:student(number,name,age) number = new Element("number"); name = new Element("name"); age = new Element("age"); firstname = new Element("firstname"); lastname = new Element("lastname"); Document doc = new Document(root); //将根元素植入文档doc中 root.setText("root_name"); number.setText("001"); firstname.setText("yu"); lastname.setText("haiming"); age.setText("24"); student.addContent(number); student.addContent(name); student.addContent(age); name.addContent(firstname); name.addContent(lastname); root.addContent(student);
root.setAttribute("width", "100%"); root.setAttribute("height", "860px"); root.setAttribute("bgcolor", "red"); root.setAttribute("name", "student"); Format format = Format.getCompactFormat(); format.setEncoding("gb2312"); //设置xml文件的字符为gb2312 format.setIndent(" "); //设置xml文件的缩进为4个空格 XMLOutputter XMLOut = new XMLOutputter(format);//元素后换行一层元素缩四格 XMLOut.output(doc, new FileOutputStream("studentinfo.xml")); } public static void main(String[] args) throws Exception { WriteXML w = new WriteXML(); System.out.println("Now we build an XML document ....."); w.BuildXML(); System.out.println("finished!"); } }
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
import org.apache.log4j.Logger;
import com.icbridge.mx.dbc.OracleDBC;public class XmlWriter {
private static Logger logger = Logger.getLogger(XmlWriter.class);
public XmlWriter(){
}
/**
*
* @Author: Gary.M
* @Date: 2007-04-11 上午09:44:24
* @param sql
* @param parentElement 父级Element名
* @param childElement 子Element名
* @param fileName 最终生成的(xml)文件名(包括路径)如:"d:\\data.xml"
* @return
*/
public boolean isCreate(String sql,String parentElement,String childElement,String fileName){
boolean isDone = true;
OracleDBC dbc = null;
Connection con = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
ResultSetMetaData rsmd = null;
int numberOfColumns = 0;
Document document=new Document(new Element(parentElement));//创建文档
try
{
dbc = new OracleDBC();
con = dbc.getConnection();
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
rsmd = rs.getMetaData(); //获取字段名
numberOfColumns = rsmd.getColumnCount(); //获取字段数
if(rs == null)
{
logger.info("无法取得记录集!");
isDone = false;
}
else
{
int i=0;
while(rs.next())//将查询结果取出
{
Element element0=new Element(childElement); //创建元素 生成JDOM树
document.getRootElement().addContent(element0);
for(i=1; i<=numberOfColumns;i++)
{
String date = rs.getString(i);
//new String(rs.getString(i).getBytes("ISO-8859-1"),"gb2312"); //代码转换
Element element = new Element(rsmd.getColumnName(i)).setText(date);
element0.addContent(element);
}
}
}
rs.close();
pstmt.close();
}catch(Exception e)
{
logger.error("数据库操作失败!"+e);
}
finally
{
dbc.close();
}
XMLOutputter outp = new XMLOutputter(); try
{
outp.output(document, new FileOutputStream(fileName)); //输出XML文档
}
catch(IOException e)
{
logger.error("XML 文档生成失败!"+e);
}
logger.info("XML 文档生成完毕!");
return isDone;
}
}
package run;
import org.jdom.*;
import org.jdom.input.*;
import java.io.*;
import java.util.*;;
public class jdomTest {
public void jdomtest() {
String textXml = null;
textXml = "<note width="+"\"100%\""+">";
textXml = textXml +
"<to><to1>a111</to1><to2>a222</to2><to3>a333</to3></to><from>bbb</from><heading>ccc</heading><body>ddd</body>";
textXml = textXml + "</note>";
System.out.println(textXml);
SAXBuilder builder = new SAXBuilder();
Document doc = null;
Reader in= new StringReader(textXml);
try {
doc = builder.build(in);
Element root = doc.getRootElement();
System.out.println(root.getAttributeValue("width"));
List ls = root.getChildren();//注意此处取出的是root节点下面的一层的Element集合
for (Iterator iter = ls.iterator(); iter.hasNext(); ) {
Element el = (Element) iter.next();
if(el.getName().equalsIgnoreCase("to")){
List ls2 = el.getChildren();
for(Iterator iter2 = ls2.iterator(); iter2.hasNext();){
Element e2 = (Element)iter2.next();
if(e2.getTextTrim().equals("to1")){
e2.setText("I have bean changed in this element.");
System.out.println(e2.getName());
continue;
}
System.out.println(e2.getName());
}
continue;
}
System.out.println(el.getText());
}
}
catch (IOException ex) {
ex.printStackTrace();
}
catch (JDOMException ex) {
ex.printStackTrace();
}
}}
package run;
import org.jdom.*;
import org.jdom.output.*;
import java.io.*;
public class WriteXML{
public void BuildXML() throws Exception {
Element root,student,number,name,age,firstname,lastname;
root = new Element("student-info"); //生成根元素:student-info
student = new Element("student"); //生成元素:student(number,name,age)
number = new Element("number");
name = new Element("name");
age = new Element("age");
firstname = new Element("firstname");
lastname = new Element("lastname");
Document doc = new Document(root); //将根元素植入文档doc中
root.setText("root_name");
number.setText("001");
firstname.setText("yu");
lastname.setText("haiming");
age.setText("24");
student.addContent(number);
student.addContent(name);
student.addContent(age);
name.addContent(firstname);
name.addContent(lastname);
root.addContent(student);
root.setAttribute("width", "100%");
root.setAttribute("height", "860px");
root.setAttribute("bgcolor", "red");
root.setAttribute("name", "student");
Format format = Format.getCompactFormat();
format.setEncoding("gb2312"); //设置xml文件的字符为gb2312
format.setIndent(" "); //设置xml文件的缩进为4个空格
XMLOutputter XMLOut = new XMLOutputter(format);//元素后换行一层元素缩四格
XMLOut.output(doc, new FileOutputStream("studentinfo.xml"));
}
public static void main(String[] args) throws Exception {
WriteXML w = new WriteXML();
System.out.println("Now we build an XML document .....");
w.BuildXML();
System.out.println("finished!");
}
}