`
dingjun1
  • 浏览: 211868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XML之DOM基本操作

XML 
阅读更多
package src.dom;

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

public class DomUtil {
	private static String XML = "dom.xml";
	private StringBuffer sb = new StringBuffer();
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	
	//得到DOM树
	public Document getDocument() throws Exception{
		
		Document doc=null;
		DocumentBuilder builder = null ;
		DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
		try{
			builder = docFactory.newDocumentBuilder();			
		}catch(ParserConfigurationException e){
			
		}
		InputStream is = DomUtil.class.getClassLoader().getResourceAsStream("src/dom/"+XML);
		
		if(is==null){
			throw new FileNotFoundException("找不到:"+XML);
		}
		doc =  builder.parse(is);
		doc.normalize();
		return doc;
	}
	
	/**
	 * 访问标签名为TAGNAME的第一个节点
	 * @param doc
	 * @param tagName
	 * @return
	 */
	public Node visitFirstNode(Document doc,String tagName){
		NodeList nodeL = doc.getElementsByTagName(tagName);
		Node node=null;
		if(nodeL!=null){
			node = nodeL.item(0);
		}
		return node;
		
	}
	
	/**
	 * 遍历节点下的怕有子节点
	 * @param node
	 */
	public void searchAllElement(Node node){
		if(node!=null){
			sb.append("\n name:"+node.getNodeName()+" type:"+node.getNodeType());
			if(node.hasChildNodes()){
				NodeList nodeL = node.getChildNodes();
				
				for(int i=0;i<nodeL.getLength();i++){
					searchAllElement(nodeL.item(i));
				}
			}
		}
	}
	
	

	/**
	 * 访问节点的属性
	 * @param node
	 */
	public void visitNode(Node node){
		if(node!=null){
			sb.append("\n name:"+node.getNodeName()+" type:"+node.getNodeType());
			if(node.hasChildNodes()){
				if(node.getFirstChild().getNodeType()==Node.TEXT_NODE){//节点有文本
					sb.append(" text value:"+node.getFirstChild().getNodeValue());
				}
			}
			if(node.hasAttributes()){//访问属性
				NamedNodeMap map = node.getAttributes();
				for(int index=0;index<map.getLength();index++){
					Node att = map.item(index);
					sb.append("\n================= name:"+att.getNodeName()+" value:"+att.getNodeValue());
					//Attr att = (Attr)map.getNamedItem("type");
					//sb.append(" att name:"+att.getName()+" value:"+att.getValue());
				}
			}
			
		}
		
		sb.append("node is null");
	}
	
	/**
	 * 访问节点相监的节点
	 * @param node
	 */
	public void visitBrotherNode(Node node){
		Node preNode = node.getPreviousSibling();
		if(preNode!=null){
			visitNode(preNode);
		}
		
		Node nextNode = node.getNextSibling();
		if(nextNode != null){
			visitNode(nextNode);
		}
	}
	
	/**
	 * 得到节点名称
	 * @param node
	 * @return
	 */
	public String getName(Node node){
		return node.getNodeName();
	}
	/**
	 * 节点的文本内容
	 * @param node
	 * @return
	 */
	public String getText(Node node){
		if(node.hasChildNodes()){
			if(node.getFirstChild().getNodeType()==Node.TEXT_NODE){
				return node.getFirstChild().getNodeValue();
			}
		}
		if(node.getNodeType()==Node.TEXT_NODE){
			return node.getNodeValue();
		}
		return null;
	}

}
分享到:
评论

相关推荐

    XML_DOM 教程 XML_DOM 教程

    DOM定义了一种标准,通过它可以以结构化的方式访问和操作XML文档。它将XML文档转换为一个节点树,其中每个节点代表XML文档的一部分。例如,XML文档中的每个元素是一个元素节点,文本内容是文本节点,属性是属性节点...

    XML&DOM帮助文档.rar

    "XMLDOM教程·chm.chm" 这个文件很可能是关于XML DOM的一个详细教程,通常包含XML的基本语法、DOM的概念、DOM的API以及如何使用DOM解析和操作XML文档等内容。在这样的教程中,你可能会学到如何创建DOM对象、查找和...

    Microsoft_XMLDOM帮助

    **Microsoft XML Document Object Model (XMLDOM)** XMLDOM是微软提供的一个接口,它允许程序员通过JavaScript、VBScript或其他...通过理解和掌握XMLDOM,开发者能够高效地操作XML文档,实现各种复杂的数据处理需求。

    XmlDom - 全能最强XML模块

    XmlDom是Python中的一个强大的XML处理模块,它允许开发者通过DOM(Document Object Model)接口来操作XML文档。DOM是一种将XML文档转换为树型结构的模型,使得我们可以方便地对XML文档进行读取、修改和创建。 首先...

    xml文件dom操作详解

    XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于存储结构化信息。DOM(Document Object Model)...随着技术的发展,还有许多高级工具和库可以帮助简化XML操作,但掌握DOM的基础知识始终是必备的。

    xml-DOM教学PPT

    XML-DOM(Document Object...总之,XML-DOM是一种强大的工具,用于程序化地处理和操作XML数据。虽然其解析过程可能会占用大量内存,但对于需要频繁修改和访问XML内容的场景,DOM提供的便利性往往超过了其性能上的劣势。

    XML解析之DOM

    在"XML解析之DOM"这一主题中,我们将深入探讨DOM解析器如何工作,以及如何通过DOM API获取XML文件中的信息。DOM解析器将整个XML文档加载到内存中,形成一个节点树,每个元素、属性、文本等内容都对应一个节点。这种...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

    dom4j操作xml

    DOM4J的灵活性和易用性使其成为Java开发中处理XML的首选工具之一,无论是在Web应用、数据交换还是配置文件处理等场景中。通过熟练掌握DOM4J,开发者可以更高效地处理XML文档,提升项目开发效率。

    javascript 操作xml_dom对象整理集合

    JavaScript操作XML DOM对象是Web开发中的重要技能,尤其在处理数据交换、页面动态更新和跨平台通信时。本文将深入探讨这一主题,并结合JavaScript技巧,为开发者提供一个全面的指导。 1. **DOM(文档对象模型)基础...

    XML DOM 教程

    1. **XML基础知识**:理解XML的基本结构,包括元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)和处理指令(Processing Instruction)。XML文档以元素为核心,元素可以包含其他元素、文本或属性...

    XML的DOM编程 实例

    XML(eXtensible Markup Language)是一种用于存储和传输...通过学习和实践这个“XML的DOM编程实例”,开发者不仅能掌握DOM解析的基本原理,还能了解到如何在实际项目中结合GUI来操作XML数据,提升软件的交互性和功能。

    Xml之DOM解析--学生成绩管理系统

    在“Xml之DOM解析--学生成绩管理系统”中,我们主要探讨如何使用DOM解析器来读取、处理和更新XML文件,以实现一个简单的学生成绩管理系统的功能。首先,我们需要理解DOM解析的基本流程: 1. **加载XML文档**:使用...

    DOM解析XML 创建XML

    DOM解析XML和创建XML是Web开发中的基础技能,尤其在处理动态数据和接口交互时,理解并掌握DOM与XML的结合应用至关重要。在实际项目中,我们可能还需要结合其他技术,如XSLT(用于转换XML)和XPath(用于在XML文档中...

    Java与XML联合编程之DOM篇.rar_dom xml_dom xml java_java xml

    DOM(Document Object Model)是W3C制定的一种标准,它为XML文档提供了一个树形结构,使得程序员可以方便地访问和操作XML文档的每一个元素。本教程将深入探讨Java中使用DOM模型解析XML文件的方法。 首先,我们需要...

    xmldom4j解析

    DOM4J是Java中一个非常强大的XML处理库,它提供了丰富的API来操作XML文档,如读取、写入、修改以及查询XML。本教程将深入探讨XML DOM4J解析的相关知识点。 一、DOM4J基本概念 DOM4J是一种灵活的Java API,其设计...

    XML中dom根据属性检索节点(C#)

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、自解释性...对于初学者而言,理解并掌握这些基本操作对于处理XML文档至关重要,因为它们是许多系统和应用程序中数据交换的基础。

    dom动态生成使用XML DOM生成XML.pdf

    **XMLDOMDocument** 对象代表了XML DOM层次结构中的顶层节点,它是构建和操作XML结构的基础。通过以下命令可以创建一个XMLDOMDocument对象实例: ```vb Set objXMLDoc = CreateObject("Microsoft.XMLDOM") ``` ...

    DOMParser解析xml

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其在Web应用...在理解和掌握DOMParser的基础上,结合实际项目需求,我们可以有效地利用XML进行数据交换、配置管理等多种任务。

Global site tag (gtag.js) - Google Analytics