`

java 读取 创建 XML文件

阅读更多

最近需整理,java创建xml文档,java读取xml文件
各个独立的系统之间要进行数据交互,比如说c做的系统,要与java做的系统弄个数据接口
用xml封装数据进行交互,暂时从老大那里听到的,所以现在上班时间整理下,速战速决,还  要 弄其他的东西,(网上资料一大堆)

  1--java创建xml文档





  2--java 读取xml文件


  xml文件
  <?xml version="1.0" encoding="GB2312" standalone="no"?>
<books>
    <book name = "think in java 第四版" >
        <name>美国人牛人</name>
        <price>108元</price>
    </book>
   <book name = "jmaki ajax">
        <name>sun</name>
        <price>56.89元</price>
    </book>
</books> 




  java代码

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.Hashtable;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
 * 描述:创建xml对象,读取xml数据,将信息设置到vo对象中
 * @author oyp 2009-12-17
 */
public class XMLReader {
	//key=vo标示符,value =vo对象
	public Hashtable<String,Object> hashTableClasses = new Hashtable<String,Object>(); 
	public XMLReader() throws Exception, Exception {
		//key=vo属性,value=vo属性值
		Hashtable<String,Object> hashTableClass = new Hashtable<String,Object>();
		// 1--得到DOM解析器的工厂实例javax.xml.parsers.DocumentBuilderFactory;
		// 类的实例就是我们要的解析器工厂
		DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
		try {
			// 2--从DOM工厂获得DOM解析器DocumentBuilder
			// DocumentBuilder的constructor是protected,不能new的,要通过工厂来创建
			// 复习下java作用域。。。。
			DocumentBuilder dombuilder = domfac.newDocumentBuilder();
			// 3--把要解析的XML文档转化为输入流,以便DOM解析器解析它,(给它捅根管道)
			InputStream is = new FileInputStream("D:\\liu.xml"); // xml 的路径
			// 4--解析XML文档的输入流,得到一个Document
			Document doc = dombuilder.parse(is);
			// 5--得到XML文档的根节点 在DOM中根节点只有一个且此对象为org.w3c.dom.Element
			Element root = doc.getDocumentElement();
			// 6--得到节点的子节点
			NodeList books = root.getChildNodes();
			if (books != null) {
				for (int i = 0; i < books.getLength(); i++) {
					Node book = books.item(i);
					if (book.getNodeType() == Node.ELEMENT_NODE) {
						// 7--取得节点的属性值!!属性值
						String classname = book.getAttributes()
								.getNamedItem("name").getNodeValue();
						System.out.println(classname);
						// 注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE

						// 8--轮循子节点!!子节点
						for (Node node = book.getFirstChild(); node != null; node = node
								.getNextSibling()) {
							if (node.getNodeType() == Node.ELEMENT_NODE) {
								if (node.getNodeName().equals("name")) {
									String name = node.getNodeValue();
									String name1 = node.getFirstChild()
											.getNodeValue();
									System.out.println("这个值是空的:" + name);
									System.out
											.println("xml里面的name标签值:" + name1);
									hashTableClass.put("name", name1);
								}
								if (node.getNodeName().equals("price")) {
									String price = node.getFirstChild()
											.getNodeValue();
									System.out.println("xml里面的price标签值:"
											+ price);
									hashTableClass.put("price", price);
								}
								
								Book b = setBook(hashTableClass);
								hashTableClasses.put(classname, b);
								
							}
						}
					}
				}
			}
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) throws Exception {
		System.out.println(new XMLReader().hashTableClasses);
	}
	
	public Book setBook(Hashtable hash) {
		Field[] fields = Book.class.getDeclaredFields();
		Book book = new Book();
		for (int i = 0 ; fields!=null&&i < fields.length ; i++)  {
			Field field = fields[i];
			if (hash.containsKey(field.getName())) {
				try {
					field.setAccessible(true);
					//如果对属性的类型还需要判断,可以自定义一个函数对field.getType()进行判断
					field.set(book, hash.get(field.getName()));
				} catch (IllegalArgumentException e) {
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					e.printStackTrace();
				}
			}
		}
		return book;
	}

}
class Book {
	private String name;
	private String price;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPrice() {
		return price;
	}
	public void setPrice(String price) {
		this.price = price;
	}
}


未完待续
干正事了 还要看jmaki,时间啊...






分享到:
评论

相关推荐

    用java读取修改xml文件的代码实现

    本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...

    java读取本地xml文件信息

    总结起来,Java读取本地XML文件涉及的主要步骤包括创建`DocumentBuilderFactory`,构建`DocumentBuilder`,解析XML文件为`Document`对象,然后通过`Document`对象访问和操作XML结构。对于复杂需求,XPath可以提供更...

    用java读取xml文件的四种方法

    要读取XML文件,Java提供了多种方法。以下是四种常用的方法,每种都有其适用场景和特点: 1. **DOM解析器(Document Object Model)** DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许我们通过节点...

    java读取xml文件

    Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等领域。本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 ...

    用java读取txt文件和xml文件

    Java提供了`javax.xml.parsers`包,包含`DocumentBuilderFactory`和`DocumentBuilder`类,它们用于解析XML文件并创建一个DOM(文档对象模型)表示。以下是一个基本示例: ```java import javax.xml.parsers....

    java读取 配置 xml文件

    总的来说,Java通过DOM解析XML文件,可以方便地读取和操作XML配置。结合这个基础,我们可以构建自己的轻量级框架来管理和实例化bean,模仿Spring的部分功能。然而,要完全复现Spring的强大功能,还需要深入理解和...

    java读取xml文件生成文件

    Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...

    java自动创建和读取XML文档

    本项目“java自动创建和读取XML文档”旨在教你如何在MyEclipse环境中利用Java来操作XML文件,包括创建和读取XML文档。 XML是一种标记语言,它允许我们在文档中定义自定义的标签,用于结构化地表示数据。它的结构...

    Xml.zip_JAVA读取xml_XML读取_java_saxreader

    本教程将重点介绍如何使用SAXReader在Java中读取XML文件。 SAXReader是JDOM库中的一个类,它实现了SAX解析器接口,适用于处理大型XML文档,因为它不会将整个XML文档加载到内存中,而是采用事件驱动的方式,逐个处理...

    读取XML文件的四种方法

    使用DOM4J方法读取XML文件,需要创建SAXReader对象,读取XML文件得到Document对象,然后使用Element对象的elementIterator方法获取指定标签的迭代器,遍历迭代器进行数据提取。 优点:DOM4J方法提供了高效的XML解析...

    java利用jdom读取xml文件

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

    Java读取xml文件的四种方法.doc

    在本例中,我们使用 `DocumentBuilderFactory` 创建一个 `DocumentBuilder` 对象,然后使用 `DocumentBuilder` 对象解析 XML 文件,最后获取文档的根元素,并遍历元素来访问 XML 文档的各个元素。 代码中,我们使用...

    java写XML文件和读取XML文件

    在Java编程中,处理XML文件是常见的需求,包括创建XML文件、读取XML文件以及解析XML内容。下面将详细介绍Java如何进行XML文件的操作。 一、Java写XML文件 1. 使用DOM(Document Object Model)API: DOM是W3C推荐...

    java导入导出xml文件

    导入XML文件到Java程序中,通常涉及解析XML文档。Java提供了多种解析器,如DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM解析器将整个XML文档加载到内存中的树形...

    java_java写XML文件和读取XML文件

    在Java编程中,处理XML文件是常见的需求,包括读取XML文件的内容以及将数据写入XML文件。下面将详细介绍Java中如何进行XML文件的读取和写入操作。 一、读取XML文件 1. DOM解析:Document Object Model(DOM)是一...

    java读取XML(JDOM)

    Java读取XML文件是开发过程中常见的任务,JDOM是一个用于处理XML文档的Java库,它提供了方便、高效的方式来创建和操作XML数据。本篇将详细讲解如何使用JDOM来读取XML文件,以及相关的源码解析。 首先,我们需要了解...

    java读取跟输出xml文件

    本教程将介绍如何使用Java读取和输出XML文件,主要涉及两个库:JDOM2和XStream。 首先,我们来了解一下JDOM2。JDOM2是一个针对Java平台的API,专门用来处理XML文档。它提供了方便的方法来创建、修改和读取XML文档。...

    java读取XML文件内容小程序

    在这个特定的“java读取XML文件内容小程序”中,使用的是XAM(可能是指JAXB,Java Architecture for XML Binding)解析器,它是一种基于Java注解的XML绑定技术,可以将XML数据自动映射到Java对象,反之亦然。...

    java 创建生成读取 xml

    用java创建生成xml文件,可以对其进行编写和读取xml文件内容

Global site tag (gtag.js) - Google Analytics