`
lujar
  • 浏览: 512631 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

利用java处理XML文档

    博客分类:
  • JAVA
阅读更多

在java对XML进行处理时,读取XML文档,对其处理,这是我得一个实例代码。

import java.io.FileInputStream;
import javax.xml.parsers.*;
import org.w3c.dom.*;

/*
 * Created on 2004-6-2
 *java读取XML文档
 *利用DoM来读取一个XML文档的内容,并将其打印出来
 */

public class TestXML {

 public static void main(String[] args) {
  Document doc;
  DocumentBuilderFactory factory;
  DocumentBuilder docBuilder;
  
   Element root;
   String elementName;
  
  FileInputStream in;
  String fileName;
  try{
   
   //get the xml file
   fileName = System.getProperty("user.dir");
   fileName = fileName+"/sample.xml";
   in = new FileInputStream(fileName);
   
   //解析XML文件,生成document对象
   factory = DocumentBuilderFactory.newInstance();
   factory.setValidating(false);
   docBuilder = factory.newDocumentBuilder();
   doc = docBuilder.parse(in);
   //解析成功
   System.out.println("parse successfull");
   
   //获取XML文档的根节点
   root = doc.getDocumentElement();   
   elementName = root.getNodeName();
   //打印根节点的属性
   printAttributes(root);
   
   //打印该文档全部节点
   System.out.println("打印全部节点");
   printElement(root,0);
   
  }
  catch(Exception exp){
   exp.printStackTrace();
  }
 }
 
 //打印某个节点的全部属性
 public static void printAttributes(Element elem){
  NamedNodeMap attributes;
  int i,max;
  String name,value;
  Node curNode;
  
  attributes = elem.getAttributes();
  max = attributes.getLength();
  
  for(i=0;i<max;i++){
   curNode = attributes.item(i);
   name = curNode.getNodeName();
   value = curNode.getNodeValue();
   System.out.println("\t"+name+" = "+value);
  }
 }

 //打印所有的节点的名称和值
 //改方法采用递归方式打印文档的全部节点
 public static void printElement(Element elem,int depth){
  String elementName;
  NodeList children;
  int i,max;
  Node curChild;
  Element curElement;
  String nodeName,nodeValue;
  
  //elementName = elem.getNodeName();
  //获取输入节点的全部子节点
  children = elem.getChildNodes();
  
  //按一定格式打印输入节点
  for(int j=0;j<depth;j++){
   System.out.print(" ");
  }
  printAttributes(elem);
  
  //采用递归方式打印全部子节点
  max = children.getLength();
  for(i=0;i<max;i++){
   
   curChild = children.item(i);
   
   //递归退出条件
   if(curChild instanceof Element){
    curElement = (Element)curChild;
    printElement(curElement,depth+1);
   }
   else{
    nodeName = curChild.getNodeName();
    nodeValue = curChild.getNodeValue();
    
    for(int j=0;j<depth;j++)System.out.print(" ");
    System.out.println(nodeName+" = "+nodeValue);
   }
  }
 }
}
 =============================================

DocumentBuildFactory factory =DocumentBuildFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(new File("config.xml"));
Element root=document.getDocumentElement();//根节点
Node n1=DOMUTils.getChild(root,"title");
String s=(n1==null)?null:DOMUtils.getTextValue(n1);


DOMUtils为辅助类
下面为其两个关键方法:注意是核心代码,不是完整代码

public static Node getChild(Node parent,String name){
NodeList children=parent.getChildNodes();
int len = children.getLength();
Node node = null;
for(int i=0;i<len;i++)
{
node=children.item(i);
String thisname=node.getNodeName();
if(name.equals(thisname))
{return node;
}
}
}

public static String getTextValue(Node node){
if((node.getNodeType()==Node.TEXT_NODE )||(node.getNodeType()==Node.CDATA_SECTION_NODE))
{return node.getNodeValue();
}
}

分享到:
评论

相关推荐

    Java实现XML文档到word文档转换

    通过合理设计XML文档结构、有效利用DOM4J进行解析以及借助适当的Word文档处理库(如Apache POI),开发者可以轻松实现这一转换过程。这不仅提高了信息的可读性和可维护性,还为用户提供了一个更加友好和直观的文档...

    java解析XML文件

    DOM4J是一个非常流行的Java XML API,它提供了一种灵活且强大的方式来处理XML文档。DOM4J基于Document Object Model(DOM),DOM是一种将XML文件转换为内存中的树形结构的模型,允许开发者通过节点遍历和操作XML内容...

    Java操作xml文件,对xml文件的增、删、改、查,简单的web应用

    本项目聚焦于利用Java处理XML文件,涵盖XML文件的增、删、改、查操作,并结合简单的Web应用进行实践。我们将探讨以下几个核心知识点: 1. **Java与XML的交互** - Java提供了多种API来处理XML,包括DOM(Document ...

    Java and XML(英文第三版)_java_xml_birdsolc_源码

    通过学习本书,读者可以掌握Java与XML的集成技巧,理解如何利用Java API处理XML文档,以及如何构建和消费Web服务。对于Java开发者来说,XML技术是必备的技能之一,这本手册将帮助他们提升在这个领域的能力。

    java_xml_api,java操作XML文档

    Java XML API是Java平台提供的一套用于处理XML文档的接口和类,它使得开发者能够方便地在Java程序中创建、解析、修改XML文档。本文将深入探讨Java XML API中的核心组件,包括SAX(Simple API for XML)、DOM...

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

    在处理XML文件时,还应注意XML的命名空间和DTD(Document Type Definition)或Schema,它们定义了XML文档的结构和规则。例如,`javax.xml.parsers.DocumentBuilderFactory`的`setNamespaceAware(true)`方法可以开启...

    java利用jdom读取xml文件

    JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理API,它提供了对XML文档结构的完整映射,使得我们可以方便地创建、读取和修改XML文件。下面将详细介绍如何使用JDOM来读取XML文件。 首先,...

    Java 使用Tcpip 发送XML文件

    总的来说,这个Java项目旨在教你如何利用TCP/IP协议在Eclipse环境中开发一个程序,实现在网络上发送和接收XML文件,这对于理解网络编程和XML处理有很好的实践价值。通过学习和实践,你可以增强自己在网络通信和数据...

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    JAXB用于对象与XML之间的映射,而DOM则用于解析整个XML文档到内存中的树形结构。对于数据库操作,我们会使用JDBC(Java Database Connectivity)接口。 1. **解析XML文件**: - DOM解析:首先,通过`javax.xml....

    java读取xml文件

    为了读取XML文件,开发者通常会利用Java API或第三方库。本篇将详细介绍如何在Java中读取XML文件,以及如何利用第三方库增强XML处理能力。 首先,Java标准库JDK提供了一个内置的API——javax.xml.parsers包,它包含...

    java解析XML的四种方式

    这种方法非常适合于处理大型的XML文档,因为它的内存占用相对较小,但同时也意味着我们不能随机访问文档中的数据,只能在事件被触发时获取信息。 SAX的另一个优点是它的实时性,即解析器可以一边读取数据一边处理...

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

    本文将基于提供的文件信息,深入探讨如何利用Java进行XML文件的读取与写入,重点介绍DOM(Document Object Model)方式的操作。 #### DOM解析XML文件 DOM是一种树形结构的数据模型,用于表示XML文档的结构。通过...

    java http 发送xml报文(java发送xml报文实例+参数)

    发送XML报文通常涉及到POST或GET请求,这里以POST请求为例,因为POST更适合发送大量数据,如XML文档。 1. **创建XML文档** 在发送XML之前,我们需要先构建XML文档。可以使用DOM(Document Object Model)或者SAX...

    java 通过模板生成 xml,发送报文

    1. **创建XML文档对象**:在Java中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`类来创建一个`Document`对象,这个对象代表整个XML文档。 ```java DocumentBuilderFactory factory = ...

    利用java语言解析xml文件

    ### 使用Java语言解析XML文件的关键知识点 #### 一、引言 ...这种方法适用于小型到中型的XML文件处理任务,在实际项目中非常实用。掌握了这些基础知识后,可以根据具体需求进一步扩展和优化代码。

    Java中写xml文件

    总的来说,Java中的XML文件处理主要依赖于JAXP,通过DOM、SAX和XSLT接口,可以灵活地读取、创建、更新和转换XML文档。开发者可以根据项目需求选择适合的处理方式,并利用可插拔层的优势,轻松切换不同实现,优化性能...

    java and xml 3rd edition

    而Java作为强大的编程语言,提供了丰富的API和工具来处理XML文档。本书的第三版反映了自上一版以来Java和XML领域的重要发展和更新。 书中涵盖了以下几个核心知识点: 1. **XML基础**:介绍XML的基本语法,包括元素...

    图书馆信息检索系统(JAVA+XML)

    本文将深入探讨一个利用JAVA技术和XML作为数据存储的图书馆信息检索系统,揭示其核心设计思想与实现机制。 XML,全称Extensible Markup Language,是一种用于标记数据的、自描述的语言,因其结构清晰、可扩展性强,...

    JAVA与XML异步刷新

    "JAVA与XML异步刷新"这一主题,主要探讨的是如何利用Java技术和XML来实现在Web应用中的异步更新,以提升用户体验和系统性能。 在JBUILDER这款集成开发环境中,开发者可以便捷地进行Java和XML的开发工作。JBUILDER...

    java 生成xml文件

    JDOM是一个纯Java的XML处理库,提供了更简洁的API来创建和修改XML文档。以下是一个JDOM生成XML的例子: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.output.Format; import ...

Global site tag (gtag.js) - Google Analytics