`

xml中Node和Element的区别

    博客分类:
  • XML
阅读更多

 1.元素(Element)和结点(Node)的区别,元素是一个小范围的定义,必须是含有完整信息的结点才是一个元素,例如<div>...</div>。但是一个结点不一定是一个元素,而一个元素一定是一个结点。
什么是node:

 

NODE是相对TREE这种数据结构而言的。TREE就是由NODE组成。这个部分你可以参考离散数学的树图。

什么是element

ELEMENT则是XML里的概念,<xxx>就是元素,是XML中的数据的组成部分之一。

素(Element)和结点(Node)的区别,元素是一个小范围的定义,必须是含有完整信息的结点才是一个元素,例如<div>...</div>。但是一个结点不一定是一个元素,而一个元素一定是一个结点。

<a>

  <b> </b>

  <b> </b>

<a>

DOM将文档中的所有都看作节点 node>element

1DOM在解析文档的时候按整个文档的结构生成一棵树,全部保存在内存

优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作;缺点则是耗内存,并且必须等到所有的文档都读入内存才能进行处理。
2一个需要注意的地方就是,XML文档两个标签之间的空白也是这棵树的一个节点(Text节点)。 <a> <b></b> <a> a有三个节点

Element root = doc.getDocumentElement();:root是什么????

NodeList list = root.getChildNodes();             root 到底是节点还是元素我不清楚?????

 

node有几个子类型:

    Element,

      Text,

    Attribute,

  RootElement,

    Comment,

    Namespace等
Element是可以有属性和子节点的node。


Element是从Node继承的

//转换

if (node.getNodeType() == Element.ELEMENT_NODE)

{
     Element e = (Element) node;

}

 ?元素有孩子吗

elemen et 性质

1 e.getAttributes()

2 e.getChildNodes()

3 e.getTagName()

 

Element root = doc.getDocumentElement();:root是什么????

NodeList list = root.getChildNodes();             root 到底是节点还是元素我不清楚???

······················································

public void domParse(String fileName) throws Exception {
  DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = f.newDocumentBuilder();//builder
  Document docment = db.parse(new File(fileName));//parese

  Element el = docment.getDocumentElement();//root
  domRead(el);
 
 }

 public void domRead(Element currentNode) {
  if ("struts-config".equals(currentNode.getNodeName())) {
   config = new StrutsConfig();
  }
       
  NodeList list = currentNode.getChildNodes();
  for (int i = 0; i < list.getLength(); i++) {
   Node node = list.item(i);
   if (node.getNodeType() == Element.ELEMENT_NODE) {
    Element e = (Element) node;//????
             
    if ("form-beans".equals(e.getTagName())) {
     formBeans = new ArrayList<FormBeanConfig>();
     domRead(e);
    }
    if ("form-bean".equals(e.getTagName())) {
     FormBeanConfig fc = new FormBeanConfig();
     NamedNodeMap attrs = e.getAttributes();
    
     for (int j = 0; j < attrs.getLength(); j++) {
      Attr attr = (Attr) attrs.item(j);
      if ("name".equals(attr.getName())) {
       fc.setName(attr.getValue());
      } else {
       fc.setType(attr.getValue());
      }
     }
     formBeans.add(fc);
    }
    if ("action-mapping".equals(e.getTagName())) {
     actions = new ArrayList<ActionConfig>();
     domRead(e);
    }
    if ("action".equals(e.getTagName())) {
     ActionConfig ac = new ActionConfig();
     NamedNodeMap attrs = e.getAttributes();
     for (int k = 0; k < attrs.getLength(); k++) {
      Attr attr = (Attr) attrs.item(k);
      if ("path".equals(attr.getName())) {
       ac.setPath(attr.getValue());
      } else if ("type".equals(attr.getName())) {
       ac.setType(attr.getValue());
      } else {
       ac.setName(attr.getValue());
      }
     }

     actions.add(ac);
    }
   }
  }
 }

tree-------xml 文件


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wcydiyi/archive/2009/08/12/4432636.aspx

分享到:
评论

相关推荐

    Node.JS XML 解析 node-elementtree.zip

    `node-elementtree` 是对 Python 的 `ElementTree` 库的一个实现,它为 Node.JS 提供了方便的 XML 解析和操作功能。这个库的设计理念是简单易用,同时也保留了 XML 文档的树形结构,使得处理复杂的 XML 文档变得直观...

    java解析XML Node与Element的区别(推荐)

    在Java中,解析XML文档时,常常会遇到Node和Element这两个概念,它们是XML DOM(文档对象模型)中两个核心的接口,分别代表了XML文档的不同层级和类型。理解它们的区别对于有效地操作XML至关重要。 首先,Node是...

    rlexception: invalid roslaunch xml syntax: no element found: lin

    在ROS(Robot Operating System)开发过程中,遇到`rlexception: invalid roslaunch xml syntax: no element found: line 1, column 0`这样的错误信息时,表明当前的`.launch`文件存在XML语法错误。具体来说,可能是...

    XML文件追加Node节点

    在XML文件中,"Node"是构成XML文档的基本元素,包括元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)、处理指令(Processing Instruction)等类型。本篇将深入探讨如何在XML文件中追加Node节点,...

    python xml.etree.ElementTree遍历xml所有节点实例详解

    Python 中处理 XML 数据的一个常用库是 `xml.etree.ElementTree`,该库提供了一种简单而有效的方式来解析和创建 XML 数据。 #### 二、环境搭建与准备 确保你的环境中已经安装了 Python,由于 `xml.etree.Element...

    Python ElementTree保存xml保留属性原始顺序补丁

    Python自带的ElementTree保存xml时不会保留节点属性的原始顺序,会重新排序。 这里提供一个Monkey Patch使ElementTree保存xml时能够保留节点属性的原始顺序,附有sample。

    pugixml读写XML示例

    `xml_document`代表整个XML文档,而`xml_node`表示文档中的一个节点,可以是元素、属性、文本等。 读取XML文件: 1. **初始化pugixml库**:在使用pugixml之前,需要包含头文件`#include &lt;pugixml.hpp&gt;`。 2. **加载...

    Java中使用xpath获取xml中的数据

    本篇将深入探讨如何在Java中利用XPath来提取XML文档中的数据,以及相关的实现步骤和关键知识点。 首先,理解XPath的基本概念至关重要。XPath使用路径表达式来选取XML文档中的节点。这些路径表达式类似于文件系统中...

    xml实例在C#.net中操作XML实例教程

    XmlElement nodeElement = xmlDocument.CreateElement("Node"); // 设置属性 nodeElement.SetAttribute("genre", "李赞红"); nodeElement.SetAttribute("ISBN", "2-3631-4"); // 添加子元素 XmlElement ...

    android和java解析XML中内容代码

    在Android和Java开发中,XML(Extensible Markup Language)是一种常用的数据交换格式,用于存储和传输结构化数据。本文将详细介绍如何在Android和Java中解析XML文件中的内容,并提供可直接使用的代码片段。 首先,...

    Xml完全操作 XML增删改查

    在Java中,我们可以使用DOM(Document Object Model)解析器将整个XML文档加载到内存中的树形结构中,便于遍历和操作。另一种解析方式是SAX(Simple API for XML),它采用事件驱动模型,逐行处理XML,节省内存但不...

    java写XML文件和读取XML文件

    读取XML文件时,首先会将整个XML文档加载到内存中的DOM树,然后通过API遍历和访问各个节点。 示例代码: ```java import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; ...

    python生成xml

    综上所述,Python 生成和处理 XML 主要依赖 `xml.etree.ElementTree` 模块,通过创建和操作 `Element` 对象构建 XML 结构,然后将其写入文件。对于复杂场景,可以考虑使用 `lxml` 提升效率。在实际应用中,应根据...

    配置文件Xml XMl公共类

    在软件开发中,XML(Extensible Markup Language)被广泛用于存储和传输数据,尤其是在配置文件管理方面。它以其结构化、可扩展的特点,成为跨平台数据交换的标准格式。本文将深入探讨配置文件中的XML及其公共类的...

    xml中的添加、删除、修改

    本文将深入探讨在XML中如何进行添加、删除和修改操作,帮助你更好地理解和掌握XML处理。 一、XML文档结构 在开始讨论操作之前,我们先了解XML的基本结构。一个XML文档通常包含以下几个部分: 1. XML声明:`&lt;?xml ...

    读取XML文件.rar

    在Python中,我们可以使用内置的`xml.etree.ElementTree`库来读取和操作XML文件。以下是一个简单的示例: ```python import xml.etree.ElementTree as ET # 解析XML文件 tree = ET.parse('read_xml.xml') root = ...

    java 解析xml 多级

    在企业级应用开发中,XML(可扩展标记语言)经常被用作数据交换格式,尤其在集成不同系统或服务时。Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细...

    Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件

    在Qt框架中,XML文件是一种常见的数据存储格式,它提供了结构化的数据表示方式,便于程序读取和写入。QTreeWidget是Qt提供的一种用于显示树状结构数据的控件,它可以很好地展示XML文件的层次结构。QXml是Qt中的XML...

    pugixml-1.0

    - 创建新节点:`xml_node node = doc.append_child("new_element")`。 - 添加属性:`node.append_attribute("attr_name") = "attr_value"`。 - 删除节点或属性:`node.remove_child(node)`或`node.remove_...

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

    在Java中,DOM解析XML文件主要涉及到`javax.xml.parsers.DocumentBuilderFactory`和`javax.xml.parsers.DocumentBuilder`这两个类。首先,我们创建一个`DocumentBuilderFactory`实例,然后用它来获取一个`...

Global site tag (gtag.js) - Google Analytics