DOM将XML文件解析为文档的过程

QT读写XML文件之DOM方式解析XML 一、DOM简介 1、DOM简介 DOM是Document Object Model的简写,即XML文档对象模型,是由W3C提出的一种处理XML文档的标准接口。DOM 一次性读入整个XML文档,在内存中构造为一棵树(DOM树)将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些。能够在这棵树上进行导航,比如移动到下一节点或者返回上一节点,也可以对这棵树进行修改,或者是直接 阅读详情

为了使用 XML 文件中的信息,必须解析文件以创建一个 Document 对象。

Document 对象是一个接口,因而不能直接将它实例化;一般情况下,应用程序会相应使用一个工厂。准确的过程因实现而异,但是基本思想是相同的。

Java 环境中,解析文件是一个三步过程:

  1. 创建 DocumentBuilderFactory。 DocumentBuilderFactory 对象创建 DocumentBuilder。
  2. 创建 DocumentBuilder。 DocumentBuilder 执行实际的解析以创建 Document 对象。
  3. 解析文件以创建 Document 对象。

现在您可以开始构建应用程序了。

基本的应用程序

首先创建一个基本的应用程序,即一个名为 OrderProcessor 的类。

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import org.w3c.dom.Document;

public class OrderProcessor {
   public static void main (String args[]) {
      File docFile = new File("orders.xml");
      Document doc = null;      
      try {

       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
       DocumentBuilder db = dbf.newDocumentBuilder();
       doc = db.parse(docFile);

      } catch (Exception e) {
         System.out.print("Problem parsing the file: "+e.getMessage());
      }
   }
}

首先,Java 代码导入必要的类,然后它创建 OrderProcessor 应用程序。本教程中的例子仅处理一个文件,因此为简洁起见,应用程序包含了对该文件的直接引用。

因此 Document 对象可以在以后使用,应用程序把它定义在 try-catch 块之外。

在 try-catch 块中,应用程序创建了 DocumentBuilderFactory,然后再使用它来创建 DocumentBuilder。 最后,DocumentBuilder 解析文件以创建 Document。

解析器设置

使用 DocumentBuilder 创建解析器的优点之一在于能够控制 DocumentBuilderFactory 创建的解析器上的各种设置。例如,可以设置解析器验证文档:

...
try {
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         
         dbf.setValidating(true);
         
         DocumentBuilder db = dbf.newDocumentBuilder();
         doc = db.parse(docFile);
      } catch (Exception e) {
...
Java 的 DOM Level 2 实现允许通过以下方法控制解析器的参数:
setCoalescing():决定解析器是否要将 CDATA 节点转换为文本,以及是否要和周围的文本节点合并(如果适
用的话)。其默认值为 false。
setExpandEntityReferences(): 确定是否要展开外部实体引用。如果为 true,外部数据将插入文档。其默
认值为 true。setIgnoringComments():确定是否要忽略文件中的注释。其默认值为 false。
setIgnoringElementContentWhitespace():确定是否要忽略元素内容中的空白(类似于浏览器对待 HTML
的方式)。其默认值为 false。
setNamespaceAware():确定解析器是否要注意名称空间信息。其默认值为 false。
setValidating():默认情况下,解析器不验证文档。将这个参数设置为 true 可打开验证功能。
解析器异常
 

由于在创建解析器时存在所有这些可能性,其中许多地方都可能会出错。正如这里的例子所表明的,应用程序把所有这些内容转储到一个单一的通用 Exception 中,就调试而言,这样可能不是很有帮助。

为更好地查明问题,您可以捕捉与创建和使用解析器的各方面相关的特定异常:

...
      try {
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder db = dbf.newDocumentBuilder();
         doc = db.parse(docFile);
      } catch (javax.xml.parsers.ParserConfigurationException pce) {
         System.out.println("The parser was not configured correctly.");
         System.exit(1);
      } catch (java.io.IOException ie) {
         System.out.println("Cannot read input file.");
         System.exit(1);
      } catch (org.xml.sax.SAXException se) {
         System.out.println("Problem parsing the file.");
         System.exit(1);
      } catch (java.lang.IllegalArgumentException ae) {
         System.out.println("Please specify an XML source.");
         System.exit(1);

      }
...

一旦解析器已创建了一个 Document,应用程序就能单步调试它以检查数据。

DOM解析XML文件实例 以一个实例来说明DOM解析XML文件的方法与过程。 立即下载

相关推荐

野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(四)(基于HAL库)

以上内容都是参考别人资料自学的,很多地方都是凭感觉,因为理论部分不太会算,只要电机能转就行,其他性能指标都没考虑,因为不会,所以这纯属是学习记录帖。带宽在500时,电流波动小,但是响应很慢,就是堵转后不太容易恢复转动。速度环带宽设定小了,响应不够快,带宽设定大了波动比较大,电机感觉起来也震一点,而且,当带宽设到200的时候,启动直接就锁死了,应该是PI增益设定太大了。电流环带宽的试验:去掉速度环,让Iq_Set=2,Ud=0,此时电机是电流环闭环控制,用手堵转电机然后松开,看电流的波动以及响应情况。

XUEXIDEXIAOhai的博客 4553

使用Dom4j解析XML文件

使用Dom4j解析XML文件

junR_980218的博客 5652

RK3588与银河麒麟V10 SP1 2403深度适配:国产化硬件与操作系统的完美融合

本文深入探讨了RK3588处理器与银河麒麟V10 SP1 2403操作系统的深度适配,展示了国产化硬件与操作系统的完美融合。通过性能验证和实际应用测试,证明了这套组合在多媒体处理、AI推理和日常办公中的卓越表现,实现了完全自主可控的计算平台。

weixin_29194255的博客 249

DOM解析XML

XML解析分为树形解析(DOM)和流解析(SAX)两种形式。其中DOM解析是将整个XML文档全部读取到内存中,形成一棵树,进行管理,而SAX解析则是以数据流的形式,在读取XML文档时,逐次触发事件。 DOM解析器的接口被W3C标准化,并且存放在org.w3c.dom包中 DOM解析的过程: 1. 获取DocumentBuilderFactory 对象 2. 获取DocumentBuilder对象...

uzboyChen的博客 341

LVGL移植教程(正点原子)

学习正点原子LVGL移植教程,根据视频教程写的博客

papalila的博客 940

Nginx反向代理HTTPS服务报错排查:The plain HTTP request was sent to HTTPS port

在Web服务架构中,反向代理是连接客户端与后端应用的关键组件,它通过转发请求实现负载均衡和安全隔离。其工作原理涉及监听端口、解析协议头部,并根据配置将请求路由至上游服务器。这一机制的技术价值在于提升系统可扩展性、简化部署,并增强安全性。在HTTPS场景下,代理服务器需正确处理SSL/TLS终止与传递,若配置不当,常引发协议不匹配问题。例如,当Nginx将解密后的HTTP请求转发至期待HTTPS的后端,或客户端直接向SSL端口发送明文请求时,便会出现经典报错“The plain HTTP request wa

weixin_33391446的博客 394

5、使用DOM解析XML文档

DOM:Document Object Model (文档对象模型) 1、DOM与SAX W3C制定了一套书写XML分析器的标准接口规范--DOM。除此之外,XML_DEV邮件列表中的成员根据应用的需求也自发地定义了一套对XML文档进行操作的接口规范--SAX。这两种接口规范各有侧重,互有长短,应用都比较广泛。;XML应用程序不是直接对XML文档进行操作的,而是首先由XML分析器对XML文档进

kaoa000的专栏——非淡泊无以明志,非宁静无以致远 4752

2024-江苏科技大学-模拟-动态接触角,模拟液滴撞击,comsol软件模拟。

相反,其对液滴粘度和平衡接触角的变化基本不敏感。重力势能的影响显著受过程参数调节,随着液滴直径和密度的增加而增加,而随着初始液滴速度和表面张力系数的增加而减小。通过考虑形状因子和粘度修正因子,可以准确定义表面能和粘性耗散能,使得所提出的半经验修正勺状模型表现出良好的性能,在所有65个研究案例中,液滴最大铺展长度因子(βmax)和中心厚度(h)的相对误差基本分别落在5%和10%的区间内。重力势能的影响受过程参数显著调节,随液滴直径和密度的增大而增大,随液滴初始速度和表面张力系数的增大而减小。

qq_15963745的博客 512

dom解析 xml

一、前言用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。JAXP接口包含

wjw806[旺旺]的专栏 1025

电脑技巧:Hyper-V安装UOS操作系统图文教程

今天给大家分享微软官方Hyper-v虚拟机管理软件安装UOS操作系统图文教程,感兴趣的朋友也可以下载试一试,当然有啥问题也可以互相沟通交流!

IT技术分享社区 4706

vue3:最新实现腾讯人脸核身+增强版人脸核身使用方法及示例源码,Vue3如何使用腾讯云慧眼人脸核身,提供人脸核身案例、身份信息核验、活体检测与核身比对等示例代码(后端spring与thinkphp)

vue3接入腾讯人脸核身,腾讯云人脸核身Vue3+后端代码,H5人脸核身,vue3 H5如何使用腾讯人脸核身sdk,vue3+thinkphp腾讯人脸核身,Spring Boot接入腾讯云人脸核身教程,hinkphp腾讯人脸核身,vue3人脸核身插件接入流程,vue+spring boot实现腾讯人脸核身,vue3接入腾讯云【增强版人脸核身接入】,vue3 h5微信公众号网页腾讯云慧眼人脸核身,tvue3接入人脸核身SDK,vue3+typescrip+vite接入慧眼实名认证,vue3腾讯云活体人脸核身(

✅ 精选推荐文章 4119

递归方式 DOM 解析(parse) XML

friends.xml   小红 123456789 小平 12345678 小敏 1234567 小良 98765432

Super的专栏 2746

SAE ARP 4761A内容详解

SAE ARP 4761A主要为民用航空系统及设备的安全评估提供指南,帮助制造商和设计者满足FAA的FAR 25.1309等适航标准的要求。该文档旨在为航空器和航空系统设计中涉及的安全评估流程提供一个结构化的框架,并结合一系列工具和方法,如故障树分析(FTA)、依赖图分析(DD)、马尔可夫分析(MA)等,来系统地评估潜在的安全隐患。这一标准不仅适用于大型航空器的设计和评估,还可以应用于各种类型的飞行系统,如无人驾驶飞行器(UAV)和新型的电动垂直起降飞机(eVTOL)。

qq_41854911的博客 3148

DOM 文档操作和 XML 文件互相转换的 Java 实现

文章转自http://www.ibm.com/developerworks/cn/xml/x-dmj/index.html 本文简要描述了 DOM 的概念和内部逻辑结构,并给出了 DOM 文档操作和 XML 文件互相转换的 Java 实现过程。 1. DOM简介 目前,W3C已于2000年11月13日推出了规范DOM level 2。文档对象模型(DOM)是HTML和...

易米-自由-科技 176

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

xml的dom解析过程详解

 一、        前言用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器

coolwzjcool的专栏 2106

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java dom解析XML文档

package xidian.sl.dom; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.crimson.tree.XmlDocument;

大江先生 613

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java使用DOM解析XML文件

JAVA解析XML通常有两种方式:DOM和SAX DOM: Document Object Model (文档对象模型) DOM的特性: 定义一组Java接口,基于对象,与语言和平台无关将XML文档表示为树,在内存中解析和存储XML文档,允许随机访问文档的不同部分。 DOM解析XMLDOM的优点,由于树在内存中是持久的,因此可以修改后更新。它还可以在任何时候在树中上下导航,API使用起来也较简单。 解析步骤: 1、创建解析器工厂对象 DocumentBuilderFactory builder = Docu

java编程学习_java基础教程_booyzhang的博客 359

用Dom处理XML文件

原文:http://www.tuicool.com/articles/bQBJbe DOM 是由 W3C 提出的一种处理 XML 文档的标准接口。Qt 实现了 DOM Level 2 级别的不验证读写 XML 文档的方法。 与 上一章 所说的流的方式不同,DOM 一次性读入整个 XML 文档,在内存中构造为一棵树(被称为 DOM 树)。我们能够在这棵树上进行导航,比如移动到下一节点或者返回上一

佛曰不可说 925

XML解析--使用Dom

文章目录一、使用DOM解析XML介绍二、使用Dom解析XML的步骤三、Dom解析XML实例(1)给出需要解析的XML文件(2)使用Dom对XML进行解析 一、使用DOM解析XML介绍 DOM解析器在解析XML文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node对象(节点)。 优点:把XML文件在内存中构造成树形结构,可以遍历和修改节点。 缺点:如果文件比较大,内存会有压力,解...

匿名攻城狮 905

Dom生成Xml和解析Xml

xml这种文件格式在很多时候都是很适合我们用来存取数据的,所以利用程序来生成xml文件和解析xml文件就显得比较重要了。在dom中是把每一个元素都看做是一个节点Node的,所有页面上的属性、元素等都是继承自Node的,所以当获取到的是一个Node,而你知道它实际的类型并需要使用的时候就可能会需要进行类型转换了。 Element root = document.getDocumentEleme

Elim的博客 1万+

javaDOM解析XML文件详解

dom可以解析和在程序运行时改变XML文件。在使用 DOM 解析 XML 文档时,需要读取整个 XML 文档,在内存中构建代表整个 DOM 树的Doucment对象,从而再对XML文档进行操作。此种情况下,如果 XML 文档特别大,就会消耗计算机的大量内存,严重情况下可能还会导致内存溢出。(一般XML文件存放的数据不会特别大,因此这种情况一般不会考虑) 一、解析步骤 1.调用DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂。 2.调用工厂对象的 n

weixin_44138291的博客 836

JAVA使用DOM解析XML

JAVA使用DOM解析XML: 首先来了解点Java DOM 的 API: 1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2.解析器:DocumentBuilder 创建方法:通过解析器工厂类来获得 DocumentBui

續寫經典 3268

DOM文档操作和XML文件互相转换的java实现

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 520

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

一、Java解析xml、解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath此文针对其中的DOM方法具体展开介绍及代码分析sax、dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析xml文档的;jaxp只是api,它进一步封装了sax、dom两种接口,并且提供了DomcumentBuilderFactory/DomcumentBuilder和S...

weixin_39912250的博客 117

DOM解析XML文档

import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; import org.w3c.dom.Attr; import org.w3c.dom.Comment; import org.w3c.dom.Document; import

_von Neumann 394

Java解析XML文件方法之一(DOM)

DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。 DOM接口提

爱的叹息的专栏 2674
上一篇: XML的名称空间
下一篇: DOM单步调试文档
wwwphp
博客等级 码龄24年 5粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值