`
hesihua
  • 浏览: 233781 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

DOM编程

    博客分类:
  • xml
 
阅读更多

最近一直在纠结关于xml方面的知识,包括xml语法,分析xml的结构和语法:包括DTD 和schema的语法定义等.

特别是到了xml解析这部分,我们在面试的时候经常会被问到这样的问题.

下面的一个例子是关于DOM解析的:

 

package com.j2ee14.ch4;

import java.io.StringWriter;

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

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;

public class DOMStudy {
	Document doc;
	
	public static void main(String[] args) throws Exception {
		DOMStudy domStudy=new DOMStudy();
		domStudy.genDocInstance();
		domStudy.genDocument();
		domStudy.printDoc();
		domStudy.modifyNode();
		domStudy.printDoc();;
		domStudy.removeNode();
		domStudy.printDoc();
		domStudy.replaceNode();
		domStudy.printDoc();
		domStudy.removeAttribute();
		domStudy.printDoc();
	}
	
	
	private void genDocInstance(){
		System.out.println("build a document instance...");
		
		try{
			DocumentBuilderFactory domFactory= DocumentBuilderFactory.newInstance();
			domFactory.setValidating(false);
			domFactory.setNamespaceAware(true);
			
			DocumentBuilder domBuilder=domFactory.newDocumentBuilder();
			domBuilder.setErrorHandler(new MyErrorHandler());
			doc=domBuilder.newDocument();
		}catch(Exception e){
			e.printStackTrace();
		}		
	}
	
	private void genDocument(){
		System.out.println("fill the content of the document.....");
		
		Element root=doc.createElement("student");
		root.setAttribute("id", "001");
		Element item=doc.createElement("name");
		item.appendChild(doc.createTextNode("jeff"));
		root.appendChild(item);
		
		item=doc.createElement("age");
		item.appendChild(doc.createTextNode("24"));
		root.appendChild(item);
		
		item=doc.createElement("height");
		item.appendChild(doc.createTextNode("1.70"));
		root.appendChild(item);
		
		item=doc.createElement("classId");
		item.appendChild(doc.createTextNode("2010212160006"));
		root.appendChild(item);
		
		
		item=doc.createElement("address");		
		Element state=doc.createElement("state");
		state.appendChild(doc.createTextNode("beijing"));		
		Element city=doc.createElement("city");
		city.appendChild(doc.createTextNode("beijing"));		
		Element street=doc.createElement("street");
		street.appendChild(doc.createTextNode("fuxing road"));		
		item.appendChild(state);
		item.appendChild(city);
		item.appendChild(street);
		root.appendChild(item);
		
	    doc.appendChild(root);		
	}
	
	private void printDoc()throws Exception{
		System.out.println("====================");
		System.out.println("print the document....");
		OutputFormat outFormat=new OutputFormat(doc);
		StringWriter stringout=new StringWriter();
		
		XMLSerializer serial=new XMLSerializer(stringout,outFormat);
		serial.asDOMSerializer();
		
		serial.serialize(doc.getDocumentElement());
		System.out.println("STRXML ="+stringout.toString());
		
		
	}
	private void modifyNode(){
		System.out.println("modify the node value....");
		Element root=doc.getDocumentElement();
		Element name=(Element) root.getFirstChild();
		name.getFirstChild().setNodeValue("hesihua");		
	}
	
	private void removeNode(){
		System.out.println("remove the node....");
		Element root=doc.getDocumentElement();
		root.removeChild(root.getFirstChild().getNextSibling());		
	}

	private void replaceNode(){
		System.out.println("replace a node.....");
		Element root=doc.getDocumentElement();
		Element item=doc.createElement("profession");
		item.appendChild(doc.createTextNode("software"));
		root.replaceChild(item, root.getFirstChild());		
	}
	
	private void removeAttribute(){
		System.out.println("remove a attribute");
		Element root=doc.getDocumentElement();
		root.removeAttribute("id");
		
	}
}

 

上面的代码在运行后得到的结果如下:

build a document instance...
fill the content of the document.....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><name>jeff</name><age>24</age><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
modify the node value....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><name>hesihua</name><age>24</age><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
remove the node....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><name>hesihua</name><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
replace a node.....
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student id="001"><profession>software</profession><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>
remove a attribute
====================
print the document....
STRXML =<?xml version="1.0" encoding="UTF-8"?>
<student><profession>software</profession><height>1.70</height><classId>2010212160006</classId><address><state>beijing</state><city>beijing</city><street>fuxing road</street></address></student>

 

真觉得DOM解析很强大...

 

分享到:
评论

相关推荐

    JavaScript DOM编程艺术.pdf

    《JavaScript DOM编程艺术》是Jeremy Keith所著的一本关于JavaScript和DOM(文档对象模型)编程的经典图书,它不仅阐述了JavaScript和DOM的基本知识,还着重讲解了DOM编程技术背后的思路和原则。本书被赞誉为Web设计...

    JavaScript DOM编程艺术【第2版&高清】.pdf

    但是,根据标题《JavaScript DOM编程艺术【第2版&高清】.pdf》和描述“JavaScript DOM编程艺术,高清资源,无比经典,值得拥有”,我们可以推断这本书主要讲述了JavaScript中DOM(文档对象模型)的相关编程技术。...

    JavaScript DOM编程艺术(中文第2版).pdf

    javascript入门必备,本书讲述了JavaScript和DOM的基础知识,但重点放在DOM编程技术背后的思路和原则:预留退路、循序渐进和以用户为中心等,这些概念对于任何前端Web开发工作都非常重要。本书将这些概念贯穿在书中...

    JavaScript.DOM编程艺术(第2版)附录及源码.rar

    《JavaScript.DOM编程艺术(第2版)》是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍。DOM是Web开发中的核心组件,它允许程序员通过JavaScript来操作HTML和XML文档的结构、内容和样式。这本书...

    JavaScriptDOM编程艺术(第2版)PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一本关于JavaScript DOM编程技术的书籍——《JavaScript DOM编程艺术(第2版)》。尽管实际书籍内容并未给出,但从标题、描述及部分链接信息来看,这本书主要涉及JavaScript...

    JavaScript DOM编程艺术(第2版pdf)+源代码

    JavaScript DOM编程艺术(第2版)是一本深受程序员喜爱的JavaScript技术书籍,专注于讲解如何使用JavaScript与Document Object Model(DOM)进行交互。DOM是Web页面的结构化表示,它允许我们通过编程方式操纵HTML和XML...

    经典之作javascript dom编程艺术源码

    JavaScript DOM编程艺术是一本深入解析DOM操作的经典书籍,它的源码提供了丰富的实例,帮助开发者深入理解如何使用原生JavaScript高效地操纵网页元素。DOM(Document Object Model)是HTML和XML文档的标准表示,它将...

    JavaScript_DOM编程艺术第二版(中文)

    JavaScript DOM编程艺术第二版是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍,主要面向希望提升JavaScript客户端开发技能的程序员。DOM是Web页面的结构化表示,JavaScript通过DOM API可以...

    随书光盘+PDF JavaScript DOM编程艺术(第2版)-源代码2.5MB PDF114MB .zip

    JavaScript DOM编程艺术(第2版)是一本深受开发者欢迎的书籍,主要涵盖了JavaScript语言在Web前端开发中的应用,特别是关于DOM(Document Object Model)的深入理解和实践。这本书的随书光盘包含了源代码和PDF电子版...

    DOM编程艺术 书+源码

    《DOM编程艺术》是一本深入探讨Document Object Model(DOM)编程技术的专业书籍,结合源码一同提供,旨在帮助读者全面理解和掌握DOM相关的JavaScript技术。DOM是Web开发中的核心部分,它定义了HTML和XML文档的结构...

    JSDOM编程艺术代码.7z

    《JavaScript.DOM编程艺术》是JavaScript开发者必读的经典之作,它深入浅出地介绍了如何使用JavaScript操作DOM(Document Object Model)来构建动态、交互式的Web页面。第二版更是对第一版的内容进行了更新和完善,...

    js+dom编程艺术资源

    《JavaScript DOM编程艺术:第2版》讲述了JavaScript、DOM 和HTML5 的基础知识,着重介绍DOM 编程技术背后的思路和原则:平稳退化、渐进增强和以用户...《JavaScript DOM编程艺术:第2版》适合Web 设计师和开发人员阅读。

    JavaScript DOM编程艺术

    本书讲述了JavaScript和DOM的基础知识,但重点放在DOM编程技术背后的思路和原则:预留退路、循序渐进和以用户为中心等,这些概念对于任何前端Web开发工作都非常重要。本书将这些概念贯穿在书中的所有代码示例中,使...

    javascript DOM 编程艺术源码

    JavaScript DOM编程艺术是一本深入探讨如何使用JavaScript操作和操纵网页文档对象模型(Document Object Model)的经典书籍。DOM是HTML和XML文档的一种结构化表示,它允许我们通过编程方式访问和修改网页内容。这...

    javaScript-DOM编程艺术

    JavaScript-DOM编程艺术是关于如何使用JavaScript操作网页文档对象模型(Document Object Model,简称DOM)的技术。DOM是一种标准,它提供了表示和操作HTML或XML文档的接口。通过DOM,JavaScript可以访问和修改网页...

    JavaScript.DOM编程艺术(第2版) 2-4

    《javascript dom编程艺术:第2版》讲述了javascript、dom 和html5 的基础知识,着重介绍dom 编程技术背后的思路和原则:平稳退化、渐进增强和以... 《javascript dom编程艺术:第2版》适合web 设计师和开发人员阅读。

    avaScript+DOM编程艺术+清晰中文版.rar

    《JavaScript+DOM编程艺术》是一本专为网页前端工程师打造的入门级图书,也是网页设计者不可或缺的参考资料。这本书深入浅出地介绍了JavaScript语言及其在DOM(Document Object Model)操作中的应用,帮助读者掌握...

    Dom编程艺术 源代码

    《DOM编程艺术》是一本深入探讨Document Object Model(DOM)的权威著作,它详细阐述了如何使用DOM进行网页和Web应用程序的动态编程。DOM是HTML和XML文档的标准表示,允许程序和脚本通过编程方式访问和操作网页内容...

    JavaScript+DOM编程艺术.pdf

    《javascript dom编程艺术:第2版》讲述了javascript、dom 和html5 的基础知识,着重介绍dom 编程技术背后的思路和原则:平稳退化、渐进增强和以用户...《javascript dom编程艺术:第2版》适合web 设计师和开发人员阅读。

    JavaScript DOM编程艺术 第2版+代码

    《JavaScript DOM编程艺术 第2版》是一本深入探讨JavaScript与DOM(Document Object Model)交互的权威书籍。DOM作为Web页面的结构模型,是JavaScript进行页面动态操作的核心工具。这本书全面覆盖了利用JavaScript来...

Global site tag (gtag.js) - Google Analytics