`
Luob.
  • 浏览: 1600675 次
  • 来自: 上海
社区版块
存档分类
最新评论

W3C 解析XML

    博客分类:
  • XML
阅读更多
W3C解析  负责  XML

package com.itheima.xml;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Iterator;
import java.util.Vector;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
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.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;

import com.itheima.xml.bean.Plant;

public class TextW3CParseXML {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String fileName="F:/plant.xml";  //已经存在的 xml文件
		TextW3CParseXML t=new TextW3CParseXML();
		try {
			Vector v=t.readXMLFile(fileName);
			Iterator it=v.iterator();
			while(it.hasNext()){
				Plant s=(Plant)it.next();
				System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getDesc());
			}
			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("读取XML文件出错:"+e.getMessage());
		}
		String outfile="F:/plant1.xml";  //复制到这个文件中
		t.writeXMLFile(outfile);
	}
	
	Vector plant_Vector;
	
	private Vector readXMLFile(String fileName) throws Exception{
		//获取dom解析器的工厂实例 
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		
		DocumentBuilder build=dbf.newDocumentBuilder();
		
		Document doc=build.parse(fileName);
		
		Element root=doc.getDocumentElement();
		NodeList plantList=root.getElementsByTagName("plant");
		plant_Vector=new Vector();
		System.out.println(plantList.getLength());
		
		for (int i = 0; i < plantList.getLength(); i++) {
			Element element=(Element)plantList.item(i);
			
			Plant plant=new Plant();
			plant.setId(element.getAttribute("id"));
			
			NodeList names=element.getElementsByTagName("name");
			Element e=(Element)names.item(0);
			Node t=e.getFirstChild();
			plant.setName(t.getNodeValue());
			
			NodeList desc=element.getElementsByTagName("description");
			e=(Element)desc.item(0);
			t=e.getFirstChild();
			plant.setDesc(t.getNodeValue());
			
			plant_Vector.add(plant);
		}
		return plant_Vector;
		
	}
	
	//将文档写入到XML文件中
	public static void callWriteXmlFile(Document doc,Writer w,String encoding){
		try {
			Source source=new DOMSource(doc);
			Result result=new StreamResult(w); //创建结果对象
			Transformer transformer=TransformerFactory.newInstance().newTransformer(); //创建转换器
			transformer.setOutputProperty(OutputKeys.ENCODING, encoding);
			transformer.transform(source, result); //对文档进行转换
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	
	//将 XML文件复制到指定文件
	private void writeXMLFile(String fileName){
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		DocumentBuilder builder=null;
		try {
			builder=dbf.newDocumentBuilder();
		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Document doc=builder.newDocument();
		Element root=doc.createElement("plants");
		doc.appendChild(root);
		for (int i = 0; i < plant_Vector.size(); i++) {
			Plant plant=(Plant)plant_Vector.get(i);
			Element element=doc.createElement("plant");
			element.setAttribute("id", plant.getId());
			root.appendChild(element);
			
			Element name=doc.createElement("name");
			element.appendChild(name);
			Text tname=doc.createTextNode(plant.getName());
			name.appendChild(tname);
			
			Element desc=doc.createElement("description");
			element.appendChild(desc);
			Text tdesc=doc.createTextNode(plant.getDesc());
			desc.appendChild(tdesc);
			
		}
		try {
			FileOutputStream fos=new FileOutputStream(fileName);  //创建文件输出流
			
			OutputStreamWriter outWriter=new OutputStreamWriter(fos);
			callWriteXmlFile(doc, outWriter, "gb2312");
			outWriter.close();
			fos.close();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		
	}
	

}

0
0
分享到:
评论

相关推荐

    xml.rar_XML c语言_c语言 xml_resolver_xml解析 c_解析xml

    1. **语法验证**:确保XML文档符合W3C标准,包括正确的嵌套、关闭标签、属性值引号等。 2. **命名规则**:XML元素和属性名必须遵循一定的命名规则,不能以数字开头,不能包含特殊字符。 3. **编码识别**:XML文档...

    w3c 生成xml 换行实例

    "w3c 生成xml 换行实例" w3c 生成xml 换行实例是使用 Java 语言通过 DOM(Document Object Model)来生成一个 XML 文档的示例代码。下面是该示例代码的详细解释: 首先,需要导入必要的包,包括 java.io、javax....

    w3c的xml的解析器

    这是xml(10年内不会失业的技术),英语不是很差的就能看懂

    w3c 生成xml 文件

    W3C(World Wide Web Consortium)是负责制定XML标准的组织,它提供了DOM(Document Object Model)API来处理XML文档。本篇文章将详细介绍如何使用Java结合W3C DOM API来生成XML文件。 首先,生成XML文件的基本步骤...

    使用DOM解析XML和使用SAX解析XML

    W3C官方推荐了DOM,使其成为与平台和语言无关的XML文档表示方式。DOM方法可以修改XML文档,例如增加、删除和修改节点,而且可以在任何时候在树形结构中上下导航。DOM解析器在读取XML文档后,会立即构建整个文档的树...

    android下解析xml文件的demo

    - 引入必要的库:`import org.w3c.dom.Document; import javax.xml.parsers.DocumentBuilderFactory;` - 创建`DocumentBuilderFactory`实例,通过`newDocumentBuilder()`方法获取`DocumentBuilder`。 - 使用`parse()...

    PB解析xml指定路径的节点内容

    XPath是W3C标准,提供了访问XML文档的强大方式,包括选择节点、属性和文本。 在PowerBuilder中,我们可以使用XML对象来操作XML文件。这个例子中,开发者创建了一个通用的函数或过程,能够接收一个XPath表达式作为...

    W3C XML Schema

    **W3C XML Schema**,全称为World Wide Web Consortium (W3C)的XML Schema Definition Language,是XML文档的一种标准化验证机制。它为XML(eXtensible Markup Language)提供了强大的结构化定义语言,用于描述XML...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过遍历树形结构可以访问和操作 ...

    SQL查询解析XML

    类型化的XML遵循W3C标准,具有明确的命名空间,而非类型化的XML则更加灵活,数据内容可能较为随意,没有严格的结构约束。 #### 2. SQL操作XML数据的方法 - **query()**:用于从完整的XML文档中提取特定路径下的子...

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

    在Java编程环境中,解析XML文件是一项常见的任务,特别是在数据处理和集成中。XML(Extensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本教程将介绍如何使用Java解析XML文件,并将解析...

    XML(W3C标准).rar_w3c_w3c webservi_xml_xml XML_xml w3c

    XML的语法严格且自描述,使得任何支持XML的软件都能理解和解析XML文档。XML文档由元素(Element)、属性(Attribute)、文本内容等构成。元素是XML文档的基本构建块,通过尖括号包围,如 `&lt;element&gt;`。属性是附加在...

    WCdom解析xml

    ### WCdom解析XML #### 知识点概览 1. **XML文档结构与DOM模型** 2. **W3C DOM API介绍** 3. **Java中的DOM解析实现** 4. **示例代码详解** #### XML文档结构与DOM模型 XML(可扩展标记语言)是一种用于标记数据...

    Java解析XML工具类--(java源码)

    * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...

    java解析xml例子

    本篇文章将深入探讨如何在Java中解析XML,以帮助你理解和实践相关知识。 一、DOM解析器 DOM(Document Object Model)解析器是Java中的一种常用方法,它将整个XML文档加载到内存中,形成一个树形结构。以下是一个...

    java_dom解析xml xml java

    标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,常用于数据交换、配置存储等场景。在Java中,有多种方式可以解析XML文件,主要包括DOM(Document Object ...

    经典的DOM解析XML范例

    1. `org.w3c.dom`:这是W3C推荐的DOM接口,用于处理XML文档的标准规划。 2. `org.xml.sax`:提供了一套事件驱动的API,用于解析XML文档,实现SAX解析。 3. `javax.xml.parsers`:包含解析器工厂类,如`...

    java在线解析xml

    1. DOM解析器:DOM是W3C推荐的一种解析XML的标准方式,它将整个XML文档加载到内存中形成一个树形结构,称为DOM树。通过DOM解析器,开发者可以轻松地遍历整个文档,访问任何元素或属性。优点是可以任意位置访问,但...

    java解析xml的四种经典方法

    DOM是W3C制定的一种标准,它将XML文档转化为一个对象树,允许开发者通过遍历树形结构来访问和修改XML文档的任意部分。DOM解析器会一次性加载整个XML文档到内存,所以适用于小型XML文档。在上述代码中,我们使用了...

Global site tag (gtag.js) - Google Analytics