`
wxj_siat
  • 浏览: 7719 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【转】xml中Node和Element的区别

阅读更多
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 文件
分享到:
评论

相关推荐

    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节点,...

    WinForm 中TreeView 互转 XML

    `MenuStrip`中的菜单项和`TreeView`的节点具有类似的树形结构,因此转换过程与`TreeView2XML`类似,只是创建的是`ToolStripMenuItem`对象,而不是`XmlElement`。 总的来说,通过理解和实践这些转换方法,开发者可以...

    java的xml和json相互转换工具类,亲测直接用

    在Java开发中,XML(可扩展标记语言)和JSON(JavaScript Object Notation)是两种常见的数据交换格式。它们各自有着不同的特性和应用场景,但有时我们需要将XML数据转换为JSON,或者将JSON数据转换为XML,以满足...

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

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

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    在实际项目中,通常会有更复杂的XML结构,可能包含嵌套的Map和List,这可能需要递归方法或额外的逻辑来处理。上述代码提供了一个基本的概念,但可能需要根据具体需求进行调整。 在"xmlToMapAndListExercise"压缩包...

    Java xml 转 map

    在Java编程中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性。而Map是Java集合框架中的一个接口,它存储键值对,提供灵活的数据组织方式。将XML转换为Map,主要是为了...

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

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

    XML文件转成TXT文件

    XML文件由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成,通过层级关系表达数据结构。转换过程的核心就是解析XML文件并提取其内容,然后将其写入TXT文件。 在C#中,我们可以使用System.Xml...

    java List XMl转换DEMO

    在Java编程中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性。而List是Java集合框架中的一个接口,主要用于存储一系列有序的对象。有时,我们需要将List对象转换为XML...

    pugixml读写XML示例

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

    C# xmlToList xml转换成对象

    在上述两种方法中,`CreateObjectFromNode`和`ConvertXmlNodeTo&lt;T&gt;`方法需要根据实际的XML结构和要转换的类来实现。通常,这涉及到反序列化XML节点的属性或子元素到T类型的对象的属性。 总的来说,C#提供了多种方式...

    xml转json所需要的jar包

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,广泛应用于Web服务和数据传输。XML以其丰富的结构化特性而闻名,而JSON则以简洁和易于解析的优势受到青睐。在...

    PHP实现XML与数据格式进行转换类

    然后,你可以通过DOMNode接口访问和操作XML节点,例如`DOMNode::appendChild()`添加子节点,`DOMNode::nodeValue`获取或设置文本内容。 - **SimpleXML**:PHP5引入了SimpleXML,提供了一种简洁的语法来处理XML。`...

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

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

    halcon XML文件处理函数,halcon函数手册,Halcon

    其中,XML文件处理函数是HALCON的一部分,允许用户在程序中读取、写入和操作XML(可扩展标记语言)文件。XML文件因其结构清晰、易于解析的特性,在数据交换和配置存储中广泛使用。以下将详细阐述HALCON中的XML文件...

    java 解析xml 多级

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

    xml格式数据和json相互转换的源码

    XML使用元素(Element)、属性(Attribute)和文本内容来存储数据。例如: ```xml 张三 &lt;age&gt;30 北京 ``` 与此相比,JSON是一种基于JavaScript语法的数据表示方式,以键值对(Key-Value Pairs)的形式存在: ...

Global site tag (gtag.js) - Google Analytics