package com.bian.jdom;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class Jdom {
public Jdom() {
super();
}/*
Attribute : org.jdom.Attribute
Element : org.jdom.Element
Comment : org.jdom.Comment
Document: org.jdom.Document
XMLOutputter: org.jdom.output.XMLOutputter
SAXBuilder: org.jdom.input.SAXBuilder
*/
public void CreateDocument(){
//创建根元素
Element eRoot = new Element("person");
//为根元素创建属性
eRoot.setAttribute(new Attribute("id", "13562986536525458954"));
//为根元素添加注释内容
eRoot.addContent(new Comment("A Person"));
//创建根元素的子元素
Element name = new Element("name");
//为此元素创建内容
name.addContent("xiaobian");
//创建根元素的子元素
Element sex = new Element("sex");
sex.addContent("Male");
//创建根元素的子元素
Element year = new Element("year");
year.addContent("1982");
//创建根元素的子元素
Element age = new Element("age");
age.addContent("26");
eRoot.addContent(name);
eRoot.addContent(sex);
eRoot.addContent(year);
eRoot.addContent(age);
for(int i=0;i<2600000;i++){
//创建根元素的子元素
Element height = new Element("height"+i);
// height.setAttribute("state","China");
height.addContent("178cm"+i);
eRoot.addContent(height);
}
Document d = new Document(eRoot);
//定义输出
XMLOutputter outputter = new XMLOutputter();
//输出流
FileWriter writer = null;
/* try {
//输出到控制台
outputter.output(d, System.out);
} catch (java.io.IOException e) {
e.printStackTrace();
}*/
try {
//创建文件流
writer = new FileWriter("c://test.xml");
} catch (IOException e) {
e.printStackTrace();
}
try {
//输出到Xml文件
outputter.output(d, writer);
} catch (IOException e) {
e.printStackTrace();
}
try {
//关闭文件流
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(" "+Runtime.getRuntime().totalMemory()/1024/1024);
}
public static void ReadDocument()throws IOException,JDOMException{
SAXBuilder sb=new SAXBuilder();
Document doc=sb.build("c:/test.xml"); //构造文档对象
Element root=doc.getRootElement(); //获取根元素
String rootName = root.getName();
System.out.println("Type :"+rootName);
Element name = root.getChild("name");
System.out.println("Name: "+name.getText());
Element sex = root.getChild("sex");
System.out.println("Sex: "+sex.getText());
Element year = root.getChild("year");
System.out.println("Birth: "+year.getText());
Element age = root.getChild("age");
System.out.println("Age: "+age.getText());
Element height = root.getChild("height");
System.out.println("Height: "+height.getText());
System.out.println("State: "+height.getAttributeValue("state"));
System.out.println(" "+Runtime.getRuntime().totalMemory()/1024/1024);
}
public static void jdomTest() {
String textXml = null;
textXml = "<note>";
textXml = textXml +
"<to>aaa</to><from>bbb</from><heading>ccc</heading><body>ddd</body>";
textXml = textXml + "</note>";
SAXBuilder builder = new SAXBuilder();
Document doc = null;
Reader in = new StringReader(textXml);
try {
doc = builder.build(in);
Element root = doc.getRootElement();
List ls = root.getChildren();//注意此处取出的是root节点下面的一层的Element集合
for (Iterator iter = ls.iterator(); iter.hasNext();) {
Element el = (Element) iter.next();
if (el.getName().equals("to")) {
System.out.println(el.getText());
}
}
}
catch (IOException ex) {
ex.printStackTrace();
}
catch (JDOMException ex) {
ex.printStackTrace();
}
}
public static void readRssFromUrl(){
SAXBuilder saxBuilder = new SAXBuilder();
URL url = null;
Document doc = null;
try {
url = new URL("http://bbs.chinaunix.net/rss.php?fid=55&auth=0");
} catch (MalformedURLException e) {
e.printStackTrace();
}
if(url == null){System.exit(0);}
try {
doc = saxBuilder.build(url);
Element elm = doc.getRootElement();
Element e = (Element)elm.getChildren().get(0);
List list = e.getChildren();
for(int i=0;i<list.size();i++){
Element element = (Element)list.get(i);
if(element.getName().equals("item")){
System.out.println("\n 标题: " + element.getChildText("title"));
System.out.println("\n 内容: " + element.getChildText("description"));
}
//System.out.println(element.getName());
}
//System.out.println("||"+elm.getAttributeValue("encoding")+">>");
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
* @throws JDOMException
* @throws IOException
*/
public static void main(String[] args) throws IOException, JDOMException {
Jdom jdom = new Jdom();
//测试
jdom.readRssFromUrl();
//jdom.ReadDocument();
}
}
http://www.jdom.org/docs/apidocs/index.html
分享到:
相关推荐
- **org.jdom** 包含了所有XML文档元素的基本Java类,例如`Element`, `Attribute`, `Document`等。 - **org.jdom.adapters** 包含了与DOM兼容的适配器类,便于在JDOM与DOM之间进行转换。 - **org.jdom.filter** 提供...
3. **易于使用**:JDOM提供了一种面向对象的方式来处理XML,使得代码更简洁,易于理解和维护。 4. **丰富的API**:JDOM提供了丰富的API,可以方便地进行XML文档的构建、解析和修改。 **三、JDOM的基本结构** JDOM...
**JDOM** 是一个专为Java设计的XML处理库,它提供了一种高效且便捷的方式来解析、创建、修改和序列化XML文档。JDOM通过利用Java语言的强大特性,如方法重载、集合和映射,将SAX和DOM的优点结合在一起,简化了XML处理...
在本文中,我们将深入探讨JDOM的基本概念、功能、安装与下载,以及如何在Java项目中使用JDOM。 **1. JDOM简介** JDOM是由Jason Hunter和Brett McLaughlin发起的一个开源项目,旨在为Java开发者提供一个高效、便捷的...
首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了JDOM的核心,它们帮助开发者构建和操作XML文档。 ...
JDOM是一种用于处理XML的Java库,它简化了XML操作,使Java开发者能够以更为直观...它不仅介绍了JDOM的基本概念和结构,还通过实例演示了如何在实际应用中使用JDOM来解析XML文档,帮助开发者在日常开发工作中提高效率。
JDOM的主要优点在于其完全使用Java语言实现,因此与Java平台高度集成,能够充分利用Java的特性。 JDOM.jar是JDOM库的二进制版本,包含了JDOM的所有类和接口,使得开发者可以在项目中直接引用这个jar文件,从而在...
JDOM是一个专为Java设计的XML处理库,它结合了SAX和DOM的优点,提供了一种更高效且方便的方式来解析、创建和操作XML文档。JDOM的核心思想是创建一个基于Java对象模型的XML文档表示,使得开发者能够利用Java的强大...
在Java应用程序中,JDOM扮演着核心角色,允许开发者以面向对象的方式处理XML数据,极大地简化了XML的解析和生成过程。 JDOM-1.1是该库的一个版本,它包含了对XML标准的全面支持以及一些性能优化。`jdom-1.1.zip`是...
### JDOM教程知识点详解 #### 一、JDOM简介 ...通过上述知识点的学习,我们可以了解到JDOM的基本使用方法,包括创建XML文档、解析XML文档以及使用XPath进行查询等功能。这对于开发者来说是非常有价值的工具。
使用JDOM1.1进行XML操作的基本步骤: 1. **解析XML**:使用SAXBuilder类解析XML文件,将其转换为Document对象。 ```java SAXBuilder builder = new SAXBuilder(); Document document = builder.build("path_to_...
Java中的JDOM(Java Document Object Model)是一个用于处理XML文档的库,它提供了一种方便的方式来创建、修改和操作XML数据。JDOM是完全用Java编写的,因此它与Java平台紧密集成,提供了高效且灵活的API来处理XML...
使用JDOM进行XML操作的基本步骤如下: 1. **解析XML**:通过`SAXBuilder`类读取XML文件,并将其转换为`Document`对象。 2. **操作XML**:对`Document`对象进行增删改查,比如修改`Element`的属性,添加子元素等。 3....
JDOM是Java中一个用于处理XML文档的库,它提供了一种高效且方便的方式来创建、读取、修改XML文件。本篇文章将深入探讨如何使用JDOM来读取XML文件。 首先,我们需要了解JDOM的基本概念。JDOM通过构建一棵DOM...
使用JDOM-1.0解析XML文档主要有两种方式:SAXBuilder和DOMBuilder。 #### 1. SAXBuilder SAXBuilder基于SAX(Simple API for XML)事件驱动模型,逐事件地处理XML文档,适用于大文件或内存有限的情况。 ```java ...
JDOM提供了一种高效且方便的方式来创建、操作和读取XML文档。与DOM(Document Object Model)相比,JDOM更易于使用,性能更优,特别是对于Java开发者来说,因为它避免了DOM API的跨语言接口带来的额外开销。 **二、...
在“jdom_v1[1].1.CHM”帮助文档中,你将找到详细的API参考、示例代码和使用指南,这将有助于你更好地理解和掌握JDOM的使用。通过学习JDOM,你可以更有效地处理XML,提高Web应用的开发效率。同时,JDOM也支持XPath和...
在Java编程中,JDOM是处理XML数据的一种常见选择,因为它将XML文档表示为一系列的Java对象,使得开发者可以使用熟悉的Java API来操作XML。 **JDOM的基本结构:** JDOM的核心类包括Element(元素)、Attribute(属性...
2. **JDOM基本结构** - **Element(元素)**:XML文档中的每一个节点,可以包含子元素、属性和文本。 - **Attribute(属性)**:元素上的键值对,用于提供额外信息。 - **Text(文本)**:元素内部的文本内容。 ...
**一、JDOM基本概念** 1. **Document对象**:在JDOM中,XML文档被表示为一个`org.jdom.Document`对象。这个对象包含了XML文档的根元素和相关的属性。 2. **Element对象**:XML文档中的每个元素都对应一个`org.jdom...