用JDOM读取XML示例

/*
 * Created on 2004-8-21
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 
*/


import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 * 
@author kingwong
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 
*/

public class myJDOM {
 
public static void main(String[] args){
 SAXBuilder sb 
= new SAXBuilder();
 
try
 

 Document doc 
= sb.build("C:/ResultSet.xml");
 Element root 
= doc.getRootElement();
 
 String str1 
= root.getAttributeValue("type");
 System.out.println(
"Root Element's comment attribute is : " + str1);
 String str2 
= root.getChild("DataRow").getAttributeValue("size");
 System.out.println(
"sex Element's value attribute is : " + str2);
 String str3 
= root.getChildText("ShowRow");
 System.out.println(
"name Element's content is :" + str3);
 String str4 
= root.getChild("DataRow").getChildText("city_name");
 System.out.println(
"contact Element's telephone subelement content is : " + str4 + "\n");
 Element inputElement 
= root.getChild("Contact"); 
 inputElement.addContent(
new Element("email").setAttribute("value","wanghua@cyberobject.com"));
 XMLOutputter xmlOut 
= new XMLOutputter(Format.getPrettyFormat());
 String outStr 
= xmlOut.outputString(root);
 System.out.println(outStr);
 }

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

}

}

另一个例子:
import org.jdom.*;
import org.jdom.input.*;
//import org.jdom.output.*;
import java.io.*;
import java.util.*;

public class Cute {

 
public static void main(String args[]) {
  
try {
   
/*
    * 用无变元构造函数构造一个SAXBuilder对象, 用sax解析器从文件中构造文档,
    * SAXBuilder侦听sax事件并从内存中建立一个相应的文档
    
*/
   SAXBuilder sb 
= new SAXBuilder();
   
// 创建文档
   Document doc = sb.build(new FileInputStream("c:/ResultSet.xml"));
   
// 加入一条处理指令
   ProcessingInstruction pi = new ProcessingInstruction(
     
"xml-stylesheet",
     
"href=\"bookList.html.xsl\" type=\"text/xsl\"");
   
// 把这条处理指令,加入文档中
   doc.addContent(pi);
   
// 获得这个文档的根元素
   Element el = doc.getRootElement();
   
   printElement(el);
/*   
   // 得到第一个子元素的子元素,却完全忽略其内容
   Element book = (Element) ls.get(0);
   // 给这个子元素添加一条属性,
   Attribute attr = new Attribute("hot", "true");
   book.setAttribute(attr);
   // 获得这个元素的子元素(指定)以及其值
   Element el2 = book.getChild("author");
   // 输出这个元素的值
   System.out.println(el2.getName());
   // 给这个元素的值改个名字
   el2.setText("cute");
   // 再获得这个元素的子元素(指定)
   Element el3 = book.getChild("price");
   // 给这个值换个值
   el3.setText(Float.toString(50.0f));
   XMLOutputter xml = new XMLOutputter();
   xml.output(doc, new FileOutputStream("cute.xml"));
*/
  } 
catch (Exception e) {
   System.out.println(e.getMessage());

  }

 }
     
private static void printElement(Element el)
     {
         List ls 
= el.getContent();
         Iterator i 
= ls.iterator();
         
while (i.hasNext()) {
             Object o 
= i.next();
             
if (o instanceof Text)/*使用instanceof 来获得所需要的内容*/
             {
                 Text t
=(Text)o;
                 System.out.println(
"Text: " + t.getText());}
             
else if(o instanceof Attribute)
                 System.out.println(
"Attribute: " + o);
             
else if (o instanceof Element)
             {
                 System.out.println(
"Element: " + ((Element) o).getName());
                 Element oe 
= (Element)o;
                 System.out.println(
"Value: "+oe.getValue());
             }
         }
     }
}

posted on 2007-08-24 16:10 灵魂守护者 阅读(533) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

留言簿(1)

文章分类(2)

文章档案(4)

收藏夹(9)

搜索

最新评论