package javawebservice;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class JDOMDemo
{
public static Document readDocument()
{
try
{
//新建SAXBuilder
SAXBuilder builder = new SAXBuilder();
//得到模板XML文件
Document anotherDocument =
builder.build(new File("xml/sample.xml"));
return anotherDocument;
}
catch (JDOMException e)
{
e.printStackTrace();
}
catch (NullPointerException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;
}
public static Document createDocument()
{
//建立根节点
Element carElement = new Element("car");
//建立文档
Document myDocument = new Document(carElement);
//建立注释节点
carElement.addContent(
new Comment("Description of a car"));
Element make = new Element("make");
make.addContent("Toyota");
carElement.addContent(make);
//建立更多的元素节点
carElement.addContent(
new Element("model").addContent("Celica"));
carElement.addContent(
new Element("year").addContent("1997"));
carElement.addContent(
new Element("color").addContent("green"));
return myDocument;
}
public static void accessChildElement(Document myDocument)
{
//根节点的建立
Element carElement = myDocument.getRootElement();
//与子节点进行数据通讯
Element yearElement = carElement.getChild("year");
if (yearElement != null)
{
System.out.println(
"Here is the element we found: "
+ yearElement.getName()
+ ". Its content: "
+ yearElement.getText()
+ "\n");
}
else
{
System.out.println(
"Something is wrong."+
" We did not find a year Element");
}
}
public static void removeChildElement(Document myDocument)
{
System.out.println(
"About to remove the year element.\n"+
"The current document:");
outputDocument(myDocument);
Element carElement = myDocument.getRootElement();
//删除节点
boolean removed = carElement.removeChild("year");
if (removed)
{
System.out.println(
"Here is the modified document without year:");
outputDocument(myDocument);
}
else
{
System.out.println(
"Something happened."+
"We were unable to remove the year element.");
}
}
public static void outputDocument(Document myDocument)
{
try
{
XMLOutputter outputter = new XMLOutputter(" ", true);
outputter.output(myDocument, System.out);
}
catch (java.io.IOException e)
{
e.printStackTrace();
}
}
public static void outputDocumentToFile(Document myDocument)
{
try
{
XMLOutputter outputter = new XMLOutputter(" ", true);
//建立一个新的XML文件
FileWriter writer = new FileWriter("xml/myFile.xml");
outputter.output(myDocument, writer);
writer.close();
}
catch (java.io.IOException e)
{
e.printStackTrace();
}
}
public static void executeXSL(Document myDocument)
{
try
{
TransformerFactory tFactory =
TransformerFactory.newInstance();
org.jdom.output.DOMOutputter outputter =
new org.jdom.output.DOMOutputter();
org.w3c.dom.Document domDocument =
outputter.output(myDocument);
javax.xml.transform.Source xmlSource =
new javax.xml.transform.dom.DOMSource(domDocument);
StreamSource xsltSource =
new StreamSource(
new FileInputStream("xml/car.xsl"));
StreamResult xmlResult = new StreamResult(System.out);
Transformer transformer =
tFactory.newTransformer(xsltSource);
transformer.transform(xmlSource, xmlResult);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (TransformerConfigurationException e)
{
e.printStackTrace();
}
catch (TransformerException e)
{
e.printStackTrace();
}
catch (org.jdom.JDOMException e)
{
e.printStackTrace();
}
}
public static void main(String argv[])
{
if (argv.length == 1)
{
String command = argv[0];
if (command.equals("create"))
outputDocument(createDocument());
else if (command.equals("access"))
accessChildElement(createDocument());
else if (command.equals("remove"))
removeChildElement(createDocument());
else if (command.equals("output"))
outputDocument(createDocument());
else if (command.equals("file"))
outputDocumentToFile(createDocument());
else if (command.equals("read"))
outputDocument(readDocument());
else if (command.equals("xsl"))
executeXSL(createDocument());
else
{
System.out.println(
command + " is not a valid option.");
printUsage();
}
}
else
{
printUsage();
}
}
public static void printUsage()
{
System.out.println(
"Usage: Article [option] \n where option is one of the following:");
System.out.println(
" create - create a document as shown in Listing 2");
System.out.println(
" access - access a child element as shown in Listing 3");
System.out.println(
" remove - remove a child element as shown in Listing 4");
System.out.println(
" output - output a document to the console as shown in Listing 5");
System.out.println(
" file - output a document to xml/myFile.xml as shown in Listing 6");
System.out.println(
" read - parse a document from xml/sample.xml as shown in Listing 7");
System.out.println(
" xsl - transform a document as shown in Listing 9");
}
}
分享到:
相关推荐
**JDOM概述** JDOM(Java Document Object Model)是一个用于处理XML文档的Java库,它提供了在内存中构建和操作XML文档的API。JDOM的主要目标是为Java开发者提供一个高性能、灵活且易于使用的XML处理工具,使得XML...
Java中的JDOM(Java Document Object Model)是一个用于处理XML文档的库,它提供了一种方便的方式来创建、修改和操作XML数据。JDOM是完全用Java编写的,因此它与Java平台紧密集成,提供了高效且灵活的API来处理XML...
Java的JDOM库是用于处理XML文档的强大工具,它的全称是Java Document Object Model。JDOM提供了一种高效且方便的方式来创建、修改和操作XML数据,使得Java开发者无需依赖于DOM(Document Object Model)或SAX...
JDOM是Java中一个用于处理XML文档的库,它提供了一种高效且方便的方式来创建、读取、修改XML文件。本篇文章将深入探讨如何使用JDOM来读取XML文件。 首先,我们需要了解JDOM的基本概念。JDOM通过构建一棵DOM...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种高效、方便的方式来创建、构建、修改和读取XML文档。JDOM的主要优点在于其完全使用Java语言实现,因此与Java平台高度集成,...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种高效、方便的方式来创建、修改和操作XML文档。在Java应用程序中,JDOM扮演着核心角色,允许开发者以面向对象的方式处理XML...
为了处理XML文档,开发者经常需要依赖特定的库,如JDOM和DOM4J。这两个库都是Java中常用的XML解析器,提供了不同的方法来读取、写入、操作和解析XML文档。下面将详细讨论这两个库及其在XML处理中的应用。 **JDOM** ...
**JDOM 1.1.2 知识详解** JDOM 是一个专为 Java 设计的 XML 处理库,它的全称是 Java Document Object Model。JDOM 提供了一个基于树形结构的 API,用于创建、操作和读取 XML 文档。在 JDOM 1.1.2 版本中,它提供了...
在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...
**JDOM1.1:构建XML文档的强大工具** 在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于数据交换、配置文件和Web服务。为了方便处理XML文档,Java社区开发了JDOM,一个...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种方便、高效的方式来创建、构建、修改和读取XML文档。JDOM的主要目标是简化XML处理,使得开发者能更直观地操作XML数据,而无需...
### JDOM教程知识点详解 #### 一、JDOM简介 JDOM(Java Document Object Model)是一种用于处理XML文档的Java库。与SAX和DOM API相比,JDOM提供了更为简洁和直观的方式来创建、读取、修改和输出XML文档。本教程主要...
**JDOM解析XML详解** XML(Extensible Markup Language)是一种用于标记数据的标准化语言,广泛应用于数据交换、配置文件和Web服务等领域。JDOM是Java领域中专门处理XML的一个库,它提供了一种高效且方便的方式来...
《JDOM英文帮助文档》是Java开发者不可或缺的参考资料,尤其对于初学者而言,它提供了全面且深入的JDOM库知识。JDOM,全称为Java Document Object Model,是Java平台上的一个解析、创建和操作XML文档的API。这篇文档...
**JDOM v1.0 API** 是一个针对Java平台的DOM(Document Object Model)实现,专为处理XML文档而设计。JDOM的目标是提供一个高效、便捷、纯Java的XML处理库,使得开发者能更容易地读写XML数据。在本文中,我们将深入...
《深入解析JDOM:源代码探索之旅》 JDOM,全称Java Document Object Model,是一个专为Java设计的XML处理库。它提供了一个基于Java的API来创建、修改和访问XML文档,使得开发者能更方便地处理XML数据。本文将详细...
JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和...
JDOM 是一个专门为Java设计的XML处理库,它结合了SAX和DOM的优点,提供了一种高效且易于使用的API来创建、解析和操作XML文档。JDOM的主要目标是简化XML处理,通过利用Java语言的强大特性,如方法重载、集合和映射,...
JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。 JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种高效、方便的方式来创建、操作和读写XML文档。在Java编程中,JDOM是处理XML数据的一种常见选择,因为它将XML文档表示为一系列...