`
sunnidy
  • 浏览: 55873 次
  • 性别: Icon_minigender_1
  • 来自: 常德
文章分类
社区版块
存档分类
最新评论

java读xml数据

阅读更多

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
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.Node;
import org.w3c.dom.NodeList;

import com.isoftstone.fwk.util.XmlTool;

/**
 * 功能:
 * @author yaos  email: yaos@isoftstone-ai.com
 * @date 2008 11 25
 */
public class TestParseDOM {

 /**
  * 功能:
  * @param args
  * @throws TransformerException
  */

 
 
 public static void main(String[] args) throws Exception {
  //writeSchoolXml();
  readSchoolXml();
 }
 
 private static void readSchoolXml() throws Exception{
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  InputStream is = new FileInputStream(new File("src/writeXML.xml"));
  Document doc = db.parse(is);
  
  Element element = doc.getDocumentElement();
  NodeList rootNodeList = element.getChildNodes();
  //analysisNode(rootNodeList);
  /****************************************************************************************************/
  if(rootNodeList!=null){
   for(int i = 0 ; i < rootNodeList.getLength() ; i ++){
    Node node1 = rootNodeList.item(i);
    if(node1.getNodeType()==Node.ELEMENT_NODE){
     String name1 = node1.getAttributes().item(0).getNodeName();
     String value1 = node1.getAttributes().item(0).getNodeValue();
     System.out.println(name1+"-->"+value1);
     
     NodeList nodelist2 = node1.getChildNodes();
     if(nodelist2!=null){
      for(int j = 0 ; j < nodelist2.getLength() ; j++){
       Node node2 = nodelist2.item(j);
       if(node2.getNodeType()==Node.ELEMENT_NODE){
        String name2 = node2.getAttributes().item(0).getNodeName();
        String value2 = node2.getAttributes().item(0).getNodeValue();
        System.out.println(name2+"-->"+value2);
        
        NodeList nodelist3 = node2.getChildNodes();
        if(nodelist3!=null){
         for(int k = 0 ; k < nodelist3.getLength() ; k++){
          Node node3 = nodelist3.item(k);
          if(node3.getNodeType()==Node.ELEMENT_NODE){
           String childName = node3.getNodeName();
           String childValue = node3.getFirstChild().getNodeValue();
           System.out.println(childName+"-->"+childValue);
          }
         }
        }
       }
       System.out.println("------------");
      }
     }
    }
   System.out.println("------------");
   }
  }
  /****************************************************************************************************/
 }
 
 public static void analysisNode(NodeList nodelist){
  if(nodelist!=null){
   for(int k = 0 ; k < nodelist.getLength() ; k++){
    Node node = nodelist.item(k);
    if(node.getNodeType()==Node.ELEMENT_NODE){
     if(node.getAttributes()!=null&&node.getAttributes().item(0)!=null){
      String name2 = node.getAttributes().item(0).getNodeName();
      String value2 = node.getAttributes().item(0).getTextContent();
      System.out.println(name2+"-->"+value2);
     }else{
      String childName = node.getNodeName();
      String childValue = node.getFirstChild().getTextContent();
      System.out.println(childName+"-->"+childValue);
     }
     analysisNode(node.getChildNodes());
    }
   }
  }
 }
}

 

 

 

也可以将/***************/之间的去掉,调用递规函数analysisNode(NodeList nodelist)去解吸

方法中使用的xml的数据是 本BLOG中使用的 生成的school的xml数据及其结构

 

 

 

控制台应该输出:

1 . 调用递规函数输出为:

level-->1
name-->1
teacher-->teacher2
monitor-->stu2
number-->2
name-->2
teacher-->teacher3
monitor-->stu3
number-->4
level-->2
name-->1
teacher-->teacher3
monitor-->stu3
number-->4
name-->2
teacher-->teacher4
monitor-->stu4
number-->8
level-->3
name-->1
teacher-->teacher4
monitor-->stu4
number-->6
name-->2
teacher-->teacher5
monitor-->stu5
number-->12

 2 . 调用非递规函数输出为:

------------
level-->1
------------
name-->1
teacher-->teacher2
monitor-->stu2
number-->2
------------
------------
name-->2
teacher-->teacher3
monitor-->stu3
number-->4
------------
------------
------------
------------
level-->2
------------
name-->1
teacher-->teacher3
monitor-->stu3
number-->4
------------
------------
name-->2
teacher-->teacher4
monitor-->stu4
number-->8
------------
------------
------------
------------
level-->3
------------
name-->1
teacher-->teacher4
monitor-->stu4
number-->6
------------
------------
name-->2
teacher-->teacher5
monitor-->stu5
number-->12
------------
------------
------------
------------

 

 

分享到:
评论

相关推荐

    java读取xml文件并存入数据库

    java从xml中读入数据并存入到sqlserver2005数据库中

    java xml拼接

    在Java编程环境中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性,广泛应用于数据存储、配置文件、Web服务等场景。当需要与数据库交互并生成XML文件时,Java JDBC(Java...

    java读xml

    总结来说,"java读xml"这个主题涵盖了Java中处理XML文件的基础知识,包括使用DOM、SAX解析器,以及可能涉及到的第三方库和工具。理解这些内容对于任何Java开发者来说都是必要的,因为XML在许多系统集成和数据交换...

    java对象生成xml数据

    在Java编程中,将Java对象转换为XML数据是一项常见的任务,特别是在处理数据交换或存储时。JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许开发者轻松地在Java对象和XML文档之间进行映射...

    java读xml,java操作xml文件

    在Java编程中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有结构化、可扩展性,常用于存储和传输数据。本文将深入探讨如何在Java中读取和操作XML文件,帮助你掌握相关的编程技能。 首先,要...

    java解释Xml,从数据库中读出来,解释Xml

    Java解释XML是从数据库中提取XML数据并对其进行解析和处理的过程,这一过程涉及到Java的XML处理API,如DOM、SAX和StAX等。在Java中,XML被广泛用于存储和交换结构化数据,尤其是在与数据库交互时。下面将详细介绍这...

    Java读写xml java 读写xml文件操作, 简单易懂

    之后,可以通过遍历`Document`对象中的节点来读取XML数据。 具体步骤如下: 1. 创建`DocumentBuilderFactory`实例。 2. 使用`DocumentBuilderFactory`实例创建`DocumentBuilder`对象。 3. 使用`DocumentBuilder`...

    java处理BOM头的XML

    1. **预处理文件**:在解析XML文件之前,可以编写一个简单的Java程序或脚本来读取文件,移除BOM头,然后将清理后的数据传递给DOM4J进行解析。可以使用Java的`InputStreamReader`和`BufferedReader`,指定正确的编码...

    java中读写XML文件

    在Java编程语言中,XML(eXtensible Markup Language)是一种重要的数据交换格式,用于存储和传输结构化数据。XML文件具有自解释性,且独立于任何特定程序或硬件平台,这使得它在不同系统间交换数据时非常有用。本篇...

    java 读xml文件

    ### Java 读取 XML 文件详解 #### 一、引言 在 Java 开发过程中,处理 XML 文件是一项常见的任务。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,被广泛应用于配置文件、数据交换等多种场景。Java ...

    java 读取XML

    在Java编程中,XML(可扩展标记语言)是一种常见的数据交换格式,用于存储和传输结构化数据。XML文件因其灵活性和可读性而被广泛应用于Web服务、配置文件以及数据序列化等领域。本篇文章将深入探讨如何使用Java来...

    java 操作xml文件(包含xml文件和对应jar包)

    Java操作XML文件是Java开发中常见的一项任务,特别是在处理配置、数据交换或存储结构化信息时。XML(Extensible Markup Language)是一种标记语言,它的结构清晰、可读性强,易于机器解析和生成。本篇文章将深入探讨...

    Java导出XML数据的方法分析与应用.pdf

    Java导出XML数据的方法分析与应用 在基于Java的应用程序中,经常需要导出和导入XML数据。Java中操作XML数据的工具方法较多,其中包括DOM、SAX、Pull parser或STAX等。每种方法都有其特点和优缺。 DOM(Document ...

    java读写xml文件

    XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来处理XML文件,包括SAX、DOM以及更现代的JSoup等。本文将详细介绍如何使用Java标准库中的DOM API来读取与写入XML...

    xml的导入导出(java)

    本教程将详细介绍如何使用Java进行XML数据的导入和导出,并与MySQL数据库进行操作。 首先,导入XML数据到MySQL数据库通常涉及以下步骤: 1. **解析XML文件**:Java提供了多种解析器来读取XML文件,如DOM(Document...

    java四种xml读写demo

    JAXB是Java中用于XML绑定的API,可以将XML数据自动转换为Java对象,反之亦然。以下是一个简单的JAXB示例: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml....

    JAVA调用webservice并解析xml

    本教程将深入讲解如何在Java环境中,利用Eclipse或MyEclipse IDE调用Web服务并解析返回的XML数据。 首先,理解Web服务的基本概念是关键。Web服务是一种通过HTTP协议传输数据的应用程序接口(API)。SOAP是基于XML的...

    base64的XML或XML生成png图片.rar

    XML数据是文本形式,但为了将其作为Base64参数,我们需要先将XML字符串转换为字节数组,再进行Base64编码,生成可读的字符串。在Java中,我们可以使用`java.util.Base64`类来完成这个过程。 其次,**XML解析**是...

Global site tag (gtag.js) - Google Analytics