在XML中Node是Element的父类,因此Element类型的节点可以转换成Node(面向对象中的向上转换)。但是看到文章中有人说Element是Node的部分,很费解。纠正下。
下面是一段测试代码:(向下转型)
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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 org.xml.sax.SAXException;
public class OperateDOM {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File xmlFile = new File("D:/技术/xml/user.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(xmlFile);
Element userElement = document.createElement("user");
Element namElement = document.createElement("name");
Element ageElement = document.createElement("age");
Text nameText = document.createTextNode("new龙准");
Text ageText = document.createTextNode("23");
namElement.appendChild(nameText);
ageElement.appendChild(ageText);
userElement.appendChild(namElement);
userElement.appendChild(ageElement);
userElement.setAttribute("id", "3");
Element root = document.getDocumentElement();
root.appendChild(userElement);
//删除第一个user
/* NodeList users=root.getElementsByTagName("user");
root.removeChild(users.item(0));*/
//修改第一个user的age值
Node firstUser = root.getElementsByTagName("user").item(0);
Element firtuserElement = (Element) firstUser;
Node name = firtuserElement.getElementsByTagName("name").item(0);
Node age= firtuserElement.getElementsByTagName("age").item(0);
age.getFirstChild().setNodeValue("24");
System.out.println("第一个user节点的内容是:");
System.out.println("name\t\t"+name.getFirstChild().getNodeValue());
System.out.println("age\t\t"+age.getFirstChild().getNodeValue());
}
}
有人说不能有Element专程Node,估计是胡说。测试下也是可以。
下面代码是源码部分(说明Elemnt 确实是Node的继承类)
public interface Element extends Node
得出结论:两者可以互换(部分,常用的方法都可以)。
分享到:
相关推荐
`node-elementtree` 是对 Python 的 `ElementTree` 库的一个实现,它为 Node.JS 提供了方便的 XML 解析和操作功能。这个库的设计理念是简单易用,同时也保留了 XML 文档的树形结构,使得处理复杂的 XML 文档变得直观...
在Java中,解析XML文档时,常常会遇到Node和Element这两个概念,它们是XML DOM(文档对象模型)中两个核心的接口,分别代表了XML文档的不同层级和类型。理解它们的区别对于有效地操作XML至关重要。 首先,Node是...
在XML文件中,"Node"是构成XML文档的基本元素,包括元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)、处理指令(Processing Instruction)等类型。本篇将深入探讨如何在XML文件中追加Node节点,...
在ROS(Robot Operating System)开发过程中,遇到`rlexception: invalid roslaunch xml syntax: no element found: line 1, column 0`这样的错误信息时,表明当前的`.launch`文件存在XML语法错误。具体来说,可能是...
Python自带的ElementTree保存xml时不会保留节点属性的原始顺序,会重新排序。 这里提供一个Monkey Patch使ElementTree保存xml时能够保留节点属性的原始顺序,附有sample。
pugixml库主要包含两个核心类:`xml_document`和`xml_node`。`xml_document`代表整个XML文档,而`xml_node`表示文档中的一个节点,可以是元素、属性、文本等。 读取XML文件: 1. **初始化pugixml库**:在使用pugi...
XML文档由一系列元素构成,每个元素都由开始标签、内容(如果有的话)和结束标签组成,例如`<element>content</element>`。元素可以嵌套,形成层次结构。此外,XML支持属性,如`<element attr="value">`,用于附加...
XmlElement nodeElement = xmlDocument.CreateElement("Node"); // 设置属性 nodeElement.SetAttribute("genre", "李赞红"); nodeElement.SetAttribute("ISBN", "2-3631-4"); // 添加子元素 XmlElement ...
用VB操作XML '生成一个XML DOMDocument对象 Set xmlDOMDocument = ... Set Added_Element = xmlDOMDocument.CreateNode(NODE_ELEMENT, "Nodes", "") Added_Element.Text = "" Root_Node.appendChild Added_Element
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于软件配置、数据交换、Web服务等领域。在Java编程中,处理XML文件是常见的需求,包括创建XML文件、读取XML文件以及解析XML内容。...
Python 中处理 XML 数据的一个常用库是 `xml.etree.ElementTree`,该库提供了一种简单而有效的方式来解析和创建 XML 数据。 #### 二、环境搭建与准备 确保你的环境中已经安装了 Python,由于 `xml.etree.Element...
XmlHelper.Insert(path, node, element, attribute, value); ``` #### 五、总结 通过对配置文件XML及其公共类的深入解析,我们可以看到XML在数据存储和传输中的灵活性和强大功能。利用像`XmlHelper`这样的封装类...
Element element = (Element) node; // 获取属性、文本内容等 } } ``` 5. 获取元素属性和文本: 对于每个元素节点,可以使用`getAttribute()`获取属性值,`getTextContent()`获取文本内容。 ```java String ...
DOM(Document Object Model)是W3C制定的一种标准,它为XML文档提供了一个树形结构,使得程序员可以方便地访问和操作XML文档的每一个元素。本教程将深入探讨Java中使用DOM模型解析XML文件的方法。 首先,我们需要...
XML文档遵循严格的层次结构,即嵌套关系,每个元素都可包含零个或多个子元素。 XML解析器的主要任务是读取XML文档并将其转换为应用程序可以处理的数据结构。有两种主要的解析方式:DOM(Document Object Model)和...
在Qt框架中,XML文件是一种常见的数据存储格式,它提供了结构化的数据表示方式,便于程序读取和写入。QTreeWidget是Qt提供的一种用于显示树状结构数据的控件,它可以很好地展示XML文件的层次结构。QXml是Qt中的XML...
3. `gen_xml_element`:此函数用于创建XML元素,包括元素名称、属性和子元素,构建XML文档的结构。 4. `append_xml_element`:这个函数用于向已存在的XML元素添加子元素,有助于构建复杂的XML树形结构。 二、使用...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于软件配置、数据交换和文档存储等领域。在Java编程中,处理XML文件是常见的需求,包括读取XML文件的内容以及将数据写入XML文件。...
这通常涉及遍历QTreeWidget的所有项,根据它们的层次关系构建一个新的XML文档。每个QTreeWidgetItem可以映射到一个XML元素,其子项对应于子元素。以下是一个基本的导出函数: ```cpp void saveTreeWidgetAsXml...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它具有结构化、自解释的特点,广泛应用于Web服务、配置文件、数据交换等领域。DOM(Document Object Model)是XML解析的一种常见方式,它将...