DOM,SAX,JDOM,DOM4J
创建一个简单的XML文档
<?xml version="1.0" encoding="gbk"?>
<users xmlns="http://www.softteem.com/xml">
<user id="1">
<name>Element</name>
<pass>123</pass>
</user>
<user id="2">
<name>jack</name>
<pass>456</pass>
</user>
<!-- .............. -->
</users>
DOM解析myusers.xml的简单例子及DOM生成newusers.xml的简单例子
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class TestDOM {
public static void main(String[] args) {
try {
// 获得一个新的DocumentBuilderFactory实例
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
// 使用DocumentBuilderFactory构建DocumentBulider
DocumentBuilder builder = factory.newDocumentBuilder();
// 使用DocumentBuilder的parse()方法解析文件
Document doc = builder.parse(new File(
"src/com/java/xml/myusers.xml"));
// 将已解析的文档存储在Document对象中
NodeList nodeList = doc.getElementsByTagName("user");
// 使用getElementByTagName()方法获得元素
for (int i = 0; i < nodeList.getLength(); i++) {
Element user = (Element) nodeList.item(i);
System.out.println("id:" + user.getAttribute("id"));
String name = user.getElementsByTagName("name").item(0)
.getFirstChild().getNodeValue();
System.out.println("name:" + name);
String pass = user.getElementsByTagName("pass").item(0)
.getFirstChild().getNodeValue();
System.out.println("pass:" + pass);
newXML();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void newXML() {
Element users, user, name, pass;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder bulider = factory.newDocumentBuilder();
Document doc = bulider.newDocument();
if (doc != null) {
users = doc.createElement("users");
user = doc.createElement("user");
user.setAttribute("id", "01");
name = doc.createElement("name");
name.appendChild(doc.createTextNode("rose"));
pass = doc.createElement("pass");
pass.appendChild(doc.createTextNode("123"));
user.appendChild(name);
user.appendChild(pass);
users.appendChild(user);
doc.appendChild(users);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer former = tf.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(
"src/com/java/xml/newusers.xml"));
former.transform(source, result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
SAX解析myusers.xml的简单例子
import java.io.File;
import java.util.Stack;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class TestSAX extends DefaultHandler {
private Stack stack = new Stack();
public static void main(String[] args) {
try {
// 创建SAXParserFactory实例
SAXParserFactory factory = SAXParserFactory.newInstance();
// 创建SAXParser实例
SAXParser parser = factory.newSAXParser();
// 使用parse()方法解析XML文档
parser.parse(new File("src/com/java/xml/myusers.xml"),
new TestSAX());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String value = new String(ch, start, length);
String name = (String) stack.peek();
if (name.equals("name")) {
System.out.println("name:" + value);
} else if (name.equals("pass")) {
System.out.println("pass:" + value);
}
}
@Override
public void endDocument() throws SAXException {
System.out.println("... end document!");
}
@Override
public void endElement(String uri, String localName, String name)
throws SAXException {
stack.pop();
}
@Override
public void startDocument() throws SAXException {
System.out.println("start document ....");
}
@Override
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
stack.push(name);
String id = attributes.getValue("id");
if (id != null) {
System.out.println("id" + id);
}
}
}
JDOM解析myusers.xml的简单例子
import java.io.File;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
public class TestJDOM {
public static void main(String[] args) {
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File(
"src/com/java/xml/myusers.xml"));
Element root = doc.getRootElement();
Namespace ns = root.getNamespace();
List users = root.getChildren();
for (int i = 0; i < users.size(); i++) {
Element user = (Element) users.get(i);
String id = user.getAttributeValue("id");
System.out.println("id:" + id);
String name = user.getChild("name", ns).getValue();
System.out.println("name:" + name);
String pass = user.getChild("pass", ns).getValue();
System.out.println("pass:" + pass);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
DOM4J解析myusers.xml的简单例子
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestDOM4J {
public static void main(String[] args) {
try {
SAXReader reader = new SAXReader();
Document doc = reader
.read(new File("src/com/java/xml/myusers.xml"));
Element root = doc.getRootElement();
Iterator iterator = root.elementIterator("user");
while (iterator.hasNext()) {
Element user = (Element) iterator.next();
String id = user.attributeValue("id");
System.out.println("id:" + id);
String name = user.elementText("name");
System.out.println("name:" + name);
String pass = user.elementText("pass");
System.out.println("pass:" + pass);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...
- **标题**: “java开发电信ISAG事例代码” - **描述**: 该示例代码主要展示了如何利用AXIS2生成客户端,并设置了SOAP头来实现特定功能。 - **标签**: ISAG事例代码 - **部分内容**: 提供了一段具体的Java代码片段,...
从给定的代码片段和描述中,我们可以提炼出与XML操作相关的多个重要知识点,下面将对这些知识点进行详细的解析。 ### XML(可扩展标记语言)基础 XML是一种用于标记数据的语言,它允许开发者定义自己的标签,因此...
在"ssm简单事例"中,你可能发现Mapper接口、Mapper XML文件以及SqlSessionFactory等关键组件。 集成SSM框架的过程通常包括以下步骤: 1. 配置Spring:创建Spring的配置文件(如applicationContext.xml),配置数据...
在Java编程语言中,文件上传是一项常见的功能,特别是在构建Web应用程序时。本篇文章将深入探讨一个简单的文件上传实例,该实例仅需10行代码即可实现。我们将介绍所需的库、关键概念以及如何处理文件上传请求。 ...
在这个示例项目中,你可能还会看到有关视图解析器(如 `InternalResourceViewResolver`)、配置文件(`web.xml` 和 `servlet-context.xml`)以及Spring Boot的集成等内容。视图解析器负责根据逻辑视图名返回实际的...
5. **部署与运行**:项目提供了一个可直接部署运行的环境,这通常意味着包含了必要的配置文件(如web.xml)、Java源代码(Servlet、DAO等)、以及可能的静态资源(HTML、CSS、JavaScript)。用户需要一个支持Servlet...
在这个"ssm事例入门级小白启蒙"的学习资源中,你将逐步了解到如何整合这三个组件,构建一个简单的Web应用。 首先,我们来了解一下每个组件的基本概念: 1. **Spring**:这是一个全面的企业级应用开发框架,它提供...
**DOM解析XML文件** 在BBS留言板项目中,DOM(Document Object Model)解析被用来处理XML文件。DOM是一种标准,它将XML文档映射成一个树形结构,允许程序和脚本动态地访问和更新文档的内容、结构和样式。通过DOM...
其次,为了让这些Java库在Web应用中工作,我们需要将它们打包到Web应用的WAR文件中,或者如果使用Spring Boot等框架,可以将依赖的JAR包添加到`build.gradle`或`pom.xml`文件中,然后进行构建。在`build`目录下,...
- RESTful服务的调用通常更简单,直接发送JSON或XML数据,然后解析返回的数据。 6. **案例分析** 压缩包中的"复件 weekWork"可能包含一个或多个JSP页面和相关的Java源代码,这些代码可能展示了如何创建一个简单的...
- XML配置:皮肤信息可以存储在XML文件中,描述每个控件的位置、大小、颜色等属性,程序运行时解析这些信息来改变界面。 - 图片资源:皮肤可能包含一系列图片资源,如按钮、滚动条、背景等,程序根据需要加载相应...
这个“Struts1.x的小事例”旨在提供一个简单易懂的入门教程,让你快速掌握Struts1的核心概念和用法。 在Struts1框架中,主要涉及以下几个关键组件: 1. **Action类**:这是处理用户请求的核心,每个Action类对应一...
1. **SOAP支持**:Xfire提供了全面的SOAP 1.1和1.2支持,包括WSDL生成、SOAP消息解析和构建,使得开发SOAP服务变得简单。 2. **RESTful服务**:除了SOAP,Xfire还支持RESTful服务的创建,允许通过HTTP方法(GET, ...
### 插件开发事例详解 #### Eclipse插件开发概览 插件开发在软件行业中是一种常见的技术,尤其是在像Eclipse这样的集成开发环境(IDE)中。通过开发插件,可以扩展IDE的功能,满足特定需求或提升开发效率。Eclipse...
该项目提供了一个Maven插件,该插件基于/项目执行解析/生成工作流。 用法 只需将插件添加到项目的Maven POM并添加配置依赖项即可。 < plugin > < groupId >org.fuin.srcgen4j</ groupId > < artifactId ...
然后,在`dispatcher-servlet.xml`中配置Spring MVC的相关组件,如视图解析器(视图解析器将决定如何使用FreeMarker模板)、处理器映射器和处理器适配器等。 在控制器类(例如`LoginController`)中,定义处理登录...
在这个“SpringMVC搭建的一个测试事例”中,我们可能看到的是一个使用SpringMVC和Hibernate来处理数据库操作的简单应用。 首先,我们需要了解SpringMVC的基本组件。Controller是处理HTTP请求的核心,通常使用@...
5. **ViewResolver**:视图解析器,根据ModelAndView中的视图名查找并渲染实际的视图。 6. **@RequestMapping**:用于映射HTTP请求,可以定义在类或方法级别。 7. **@PathVariable**:用于获取URL路径变量。 8. *...