转自:

Java之XML解析-使用dom(org.w3c.dom)解析XML

下文笔者将讲述使用W3C(org.w3c.dom)提供的接口,解析XML文档的方法分享

W3C解析xml文档的方法:将整个xml文档读入内存,然后构建一个DOM树,然后对各节点Node进行相应的操作

Document Object简介

Document对象

Document对象:通常指整个XML的文档及其所有Node
这些节点按照一定的顺序保存在Document对象中,形成一个树形的结构
我们可以通过遍历一棵xml树,获取xml文档中所有的内容,那么这一棵树都是为Document对象

Document对象拥有以下常用方法

  1. createAttribute(String):用给定的属性名创建一个Attr对象,并可在其后使用setAttributeNode方法来放置在某一个Element对象上面。
  2. createElement(String):用给定的标签名创建一个Element对象,代表XML文档中的一个标签,然后就可以在这个Element对象上添加属性或进行其它的操作。
  3. createTextNode(String):用给定的字符串创建一个Text对象,Text对象代表了标签或者属性中所包含的纯文本字符串。如果在一个标签内没有其它的标签,那么标签内的文本所代表的Text对象是这个Element对象的唯一子对象。
  4. getElementsByTagName(String):返回一个NodeList对象,它包含了所有给定标签名字的标签。
  5. getDocumentElement():返回一个代表这个DOM树的根节点的Element对象,也就是代表XML文档根元素的那个对象。

Node对象

Node对象:代表DOM中的一个抽象节点,她是组成DOM对象的必要部分,Node对象中常见的方法如下所示:

  1. getNextSibling():返回在DOM树中这个节点的下一个兄弟节点。
  2. getPreviousSibling()方法返回其前一个兄弟节点。
  3. getNodeName():根据节点的类型返回节点的名称。
  4. getNodeType():返回节点的类型。
  5. getNodeValue():返回节点的值。
  6. hasChildNodes():判断是不是存在有子节点。
  7. hasAttributes():判断这个节点是否存在有属性。
  8. getOwnerDocument():返回节点所处的Document对象。
  9. insertBefore(org.w3c.dom.Node new,org.w3c.dom.Node ref):在给定的一个子对象前再插入一个子对象。
  10. removeChild(org.w3c.dom.Node):删除给定的子节点对象。
  11. replaceChild(org.w3c.dom.Node new,org.w3c.dom.Node old):用一个新的Node对象代替给定的子节点对象。
  12. appendChild(org.w3c.dom.Node):为这个节点添加一个子节点,并放在所有子节点的最后,如果这个子节点已经存在,则先把它删掉再添加进去。
  13. getFirstChild():如果节点存在子节点,则返回第一个子节点。
  14. getLastChild():方法返回最后一个子节点。

NodeList对象

此对象包含一个或多个Node对象,常用于检测长度及个数

  1. GetLength():返回列表的长度
  2. Item(int):返回指定位置的Node对象

Element对象

Element对象:指xml中的标签元素,继承于Node
他是Node对象的子对象,标签中包含属性,由于继承于Node,所以她也拥有Node节点中的方法
它拥有以下主要方法:

  1. getElementsByTagName(String):返回一个NodeList对象,它包含了在这个标签中其下的子孙节点中具有给定标签名字的标签。
  2. getTagName():返回一个代表这个标签名字的字符串。
  3. getAttribute(String):返回标签中给定属性名称的属性的值。在这儿需要主要的是,应为XML文档中允许有实体属性出现,而这个方法对这些实体属性并不适用。
  4. getAttributeNodes()方法来得到一个Attr对象来进行进一步的操作。
  5. getAttributeNode(String):返回一个代表给定属性名称的Attr对象。

Attr对象

Attr对象所代表的含义为:标签中的属性,她继承于Node,她只是作为Element对象的一部分,但是不作为树的单独节点

java 之Dom解析XML的步骤如下所示:
1. 获取DocumentBuilderFactory
2. 通过DocumentBuilder工厂产生一个DocumentBuilder
3. 利用DocumentBuilder产生Document

例:

testXml.xml<?xml version="1.0" encoding="UTF-8"?>
<struts><constant name="struts.i18n.encoding" value="gb2312">324</constant><package name="stuts2" extends="struts-default"><action name="A"  ><result name="s">a.jsp</result><result name="t">b.jsp</result><result name="m">c.jsp</result><result name="fail">d.jsp</result></action> <action name="B" ><result name="success">e.jsp</result><result name="fail">f.jsp</result></action> </package>
</struts>public class TestClass {public static void main(String[] args) {try {File f = new File("testXml.xml");DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//步骤1DocumentBuilder builder = factory.newDocumentBuilder();//步骤2Document doc = builder.parse(f);//步骤3NodeList nl = doc.getElementsByTagName("action");for (int i = 0; i < nl.getLength(); i++) {System.out.println("result:"+ doc.getElementsByTagName("result").item(i).getFirstChild().getNodeValue());            }} catch (Exception e) {e.printStackTrace();}}
}

Java之XML解析-使用dom(org.w3c.dom)解析XML相关推荐

  1. java w3c dom api_org.w3c.dom 中文api

    关于XML字符串和XML Document之间的转换 在web项目中,XML作为一种重要的数据存储和传输介质,被广泛使用.XML文件,XML字符串和XML Document对象是XML存在的三种形式, ...

  2. java dom解析xml路径中文_Java如何基于DOM解析xml文件

    一.Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath 此文针对其中的DOM方法具体展开介绍及代码分析 sax.dom是两种对xml文档进行解析的方法(没有具体实 ...

  3. java jdom dom4j_Java基础系列17:使用DOM、SAX、JDOM、DOM4J解析XML文件详解

    一 简介 在Java中,可以使用多种方式来解析XML文件,其中最常见的可能就是DOM.SAX.JDOM.DOM4J这四种方式了.其中,DOM和SAX这两种解析XML文件的方式有jdk自带的API,因此 ...

  4. 分享一个 org.w3c.dom XML 封装

    之前解析 XML 大多在网页中完成.如果切换到 Java 中可能是 Dom4j 或者其他.不过对于一些小 Case,JDK 自带的 Dom 就可以了,而且可以省掉第三方 JAR,何乐不为呢?于是我参照 ...

  5. web学习 -- w3c dom标准

    W3C dom标准 W3C DOM 标准 核心 DOM - 针对任何结构化文档的标准模型 Document:文档对象 Element:元素对象 Node:节点对象,其他5个的父对象 XML DOM - ...

  6. java w3c xml_org.w3c.dom(java dom)解析XML文档

    首先来了解点Java DOM 的 API: 1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBui ...

  7. java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用org.w3c.dom(java dom)解析XML文档,创建.增删查改,保存,读取,遍历元素等操作 在保存文件时需要载入crimso ...

  8. Java使用DOM和DOM4J分别解析XML文件步骤以及代码

    XML文件如下: PhoneType.xml <?xml version="1.0" encoding="UTF-8" standalone=" ...

  9. Java11引用org.w3c.dom 时报错The package org.w3c.dom is accessible from more than one module: , java.xml

    Java11 引用 org.w3c.dom 时报错The package org.w3c.dom is accessible from more than one module: , java.xml ...

最新文章

  1. 获取 Andriod keystore签名证书文件,用于打包APP应用
  2. STL queue priority_queue
  3. 12、动态视图组件ListView、GridView
  4. ASP.NET弹出一个对话框
  5. vue-cli watch/timer
  6. Yii2.0 limit(1)与one()
  7. 机器学习算法加强——决策树和随机森林实践
  8. java ftp上传文件 linux_Java实现把文件上传至ftp服务器
  9. 本机连接opc server有部分数据不刷新_实时数据库PI在企业MES系统中的应用
  10. android 闪存软件测试,手机为什么这么卡:闪存I/O测试AndroBench
  11. 一般人想象不到的创业者付出的5种努力 创业者的背后
  12. php新手自学手册,PHP完全自学手册(文档教程)
  13. 机器学习基石01:机器学习简介
  14. 2021系统架构设计师论文真题
  15. ps怎么把模糊的图片变清楚
  16. 我要偷偷的学Python,然后惊呆所有人(第五天)
  17. css_径向渐变 radial-gradient()/css generator样式生成器
  18. shap库源码和代码实现
  19. 交换机的背板容量、交换容量和包转发能力
  20. logback出现大量XXX_IS_UNDEFINED日志文件的问题

热门文章

  1. 福利篇1——嵌入式软件行业与公司汇总
  2. 【Python实战】 ---- 爬虫 爬取LOL英雄皮肤图片
  3. 腾讯云网站备案-网站访问类问题汇总及解答
  4. Docker 搭建 LNMP + Wordpress
  5. 王垠对 JS 的评价
  6. 【9008】香甜的黄油
  7. linux下删除文件夹及下面所有文件
  8. (简单)华为畅玩5C NEM-AL00的usb调试模式在哪里打开的教程
  9. 997. 找到小镇的法官_小镇...
  10. 【英语】八月英语总结