`
huihawk
  • 浏览: 5168 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

java解析xml简单事例

阅读更多
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实例解析

    ### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...

    java开发电信ISAG事例代码

    - **标题**: “java开发电信ISAG事例代码” - **描述**: 该示例代码主要展示了如何利用AXIS2生成客户端,并设置了SOAP头来实现特定功能。 - **标签**: ISAG事例代码 - **部分内容**: 提供了一段具体的Java代码片段,...

    xml 操作事例

    从给定的代码片段和描述中,我们可以提炼出与XML操作相关的多个重要知识点,下面将对这些知识点进行详细的解析。 ### XML(可扩展标记语言)基础 XML是一种用于标记数据的语言,它允许开发者定义自己的标签,因此...

    ssm简单事例

    在"ssm简单事例"中,你可能发现Mapper接口、Mapper XML文件以及SqlSessionFactory等关键组件。 集成SSM框架的过程通常包括以下步骤: 1. 配置Spring:创建Spring的配置文件(如applicationContext.xml),配置数据...

    java中最简单的文件上传实例

    在Java编程语言中,文件上传是一项常见的功能,特别是在构建Web应用程序时。本篇文章将深入探讨一个简单的文件上传实例,该实例仅需10行代码即可实现。我们将介绍所需的库、关键概念以及如何处理文件上传请求。 ...

    springmvc事例,注解,拦截器

    在这个示例项目中,你可能还会看到有关视图解析器(如 `InternalResourceViewResolver`)、配置文件(`web.xml` 和 `servlet-context.xml`)以及Spring Boot的集成等内容。视图解析器负责根据逻辑视图名返回实际的...

    json经典事例源代码

    5. **部署与运行**:项目提供了一个可直接部署运行的环境,这通常意味着包含了必要的配置文件(如web.xml)、Java源代码(Servlet、DAO等)、以及可能的静态资源(HTML、CSS、JavaScript)。用户需要一个支持Servlet...

    ssm事例入门级小白启蒙

    在这个"ssm事例入门级小白启蒙"的学习资源中,你将逐步了解到如何整合这三个组件,构建一个简单的Web应用。 首先,我们来了解一下每个组件的基本概念: 1. **Spring**:这是一个全面的企业级应用开发框架,它提供...

    BBS留言板

    **DOM解析XML文件** 在BBS留言板项目中,DOM(Document Object Model)解析被用来处理XML文件。DOM是一种标准,它将XML文档映射成一个树形结构,允许程序和脚本动态地访问和更新文档的内容、结构和样式。通过DOM...

    pdf在线查看,兼容浏览器 所需jar包 事例 java

    其次,为了让这些Java库在Web应用中工作,我们需要将它们打包到Web应用的WAR文件中,或者如果使用Spring Boot等框架,可以将依赖的JAR包添加到`build.gradle`或`pom.xml`文件中,然后进行构建。在`build`目录下,...

    关于JSP中web服务事例演示

    - RESTful服务的调用通常更简单,直接发送JSON或XML数据,然后解析返回的数据。 6. **案例分析** 压缩包中的"复件 weekWork"可能包含一个或多个JSP页面和相关的Java源代码,这些代码可能展示了如何创建一个简单的...

    皮肤事例.zip

    - XML配置:皮肤信息可以存储在XML文件中,描述每个控件的位置、大小、颜色等属性,程序运行时解析这些信息来改变界面。 - 图片资源:皮肤可能包含一系列图片资源,如按钮、滚动条、背景等,程序根据需要加载相应...

    Struts1.x的小事例

    这个“Struts1.x的小事例”旨在提供一个简单易懂的入门教程,让你快速掌握Struts1的核心概念和用法。 在Struts1框架中,主要涉及以下几个关键组件: 1. **Action类**:这是处理用户请求的核心,每个Action类对应一...

    用xfire做的webservers事例

    1. **SOAP支持**:Xfire提供了全面的SOAP 1.1和1.2支持,包括WSDL生成、SOAP消息解析和构建,使得开发SOAP服务变得简单。 2. **RESTful服务**:除了SOAP,Xfire还支持RESTful服务的创建,允许通过HTTP方法(GET, ...

    插件开发事例

    ### 插件开发事例详解 #### Eclipse插件开发概览 插件开发在软件行业中是一种常见的技术,尤其是在像Eclipse这样的集成开发环境(IDE)中。通过开发插件,可以扩展IDE的功能,满足特定需求或提升开发效率。Eclipse...

    java源码生成-srcgen4j-maven:Java的源代码生成(Maven插件)

    该项目提供了一个Maven插件,该插件基于/项目执行解析/生成工作流。 用法 只需将插件添加到项目的Maven POM并添加配置依赖项即可。 &lt; plugin &gt; &lt; groupId &gt;org.fuin.srcgen4j&lt;/ groupId &gt; &lt; artifactId ...

    springmvc+freemarker带sql的登录事例

    然后,在`dispatcher-servlet.xml`中配置Spring MVC的相关组件,如视图解析器(视图解析器将决定如何使用FreeMarker模板)、处理器映射器和处理器适配器等。 在控制器类(例如`LoginController`)中,定义处理登录...

    SpingMVC搭建的一个测试事例

    在这个“SpringMVC搭建的一个测试事例”中,我们可能看到的是一个使用SpringMVC和Hibernate来处理数据库操作的简单应用。 首先,我们需要了解SpringMVC的基本组件。Controller是处理HTTP请求的核心,通常使用@...

    SpringMVC+mybatis 事例

    5. **ViewResolver**:视图解析器,根据ModelAndView中的视图名查找并渲染实际的视图。 6. **@RequestMapping**:用于映射HTTP请求,可以定义在类或方法级别。 7. **@PathVariable**:用于获取URL路径变量。 8. *...

Global site tag (gtag.js) - Google Analytics