XML解析(DOM方式)
直接上例子。
XML举例:
<?xml version="1.0" encoding="UTF-8"?>
<school> //XML结构中的根节点。<student id="1"> //当前"id"为该子节点属性//以下name,age,sex,number为上子节点的子节点/属性名。<name>王</name><age>18</age><sex>男</sex><number>15</number></student><student id="2"><name>吴</name><age>20</age><number>40</number></student></school>
下面用DOM方式对以上XML进行解析。
public class DOMxml
{public static void main(String args[]){DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); //如上实例化DocumentBuilderFactory对象。try{DocumentBuilder db=dbf.newDocumentBuilder(); //实例化DocumentBuilder对象。try{Document doc=db.parse("略"); //加载XMLNodeList nl=doc.getElementsByTagName("student"); //根据标签名获取XML中的相应节点,返回值为NodeList对象。for(index=0;index<nl.getLength();index++){Node nd=nl.item(index);NamedNodeMap nnm=nd.getAttributes(); //获取该节点中的所有属性值(不包括子节点),返回值为NamedNodeMap对象。for(int i=0;i<nnm.getLength();i++) //遍历属性{ Node mynewnode=nnm.item(i);mynewnode.getNodeName(); //获取属性名。mynewnode.getNodeValue(); //获取属性值。}NodeList childlist=nd.getChildNodes(); //获取该节点的所有子节点,返回值为NodeList对象。//下面对childlist进行遍历,获取每个节点的节点名和节点值。for(int nonum=0;nonum<childlist.getLength();nonum++){if(childlist.item(nonum).getNodeType()==Node.ELEMENT_NODE) //过滤{childlist.item(nonum).getNodeName(); //获取节点名。// 方式一 childlist.item(nonum).getFirstChild().getNodeValue();获取它的第一子节点的节点值。childlist.item(nonum).getTextContent();//方式二,直接获取该节点内的所有文本内容。} }} }catch(SAXException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}}catch(ParserConfigurationException e){e.printStackTrace();} }}
注:当知道属性名,且该节点的属性有且只有一个时,可直接
String valval=((Element)nl.item(index)).getAttribute("id");获取属性值。
XML解析(DOM方式)相关推荐
- XML简介,XML和HTML的区别,XML用处,XML规则,XML约束,XML语法,XML解析,DOM
什么是xml XML 指可扩展标记语言(EXtensible Markup Language),它的结构是一种树形的结构,必须有一个根节点 XML 是一种标记语言,很类似 HTML XML 的设计宗旨 ...
- XML解析---DOM解析和SAX解析
XML是一种通用的数据交换格式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便.XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已. 对于XML的解析,还有 ...
- IOS中的XML解析方式
XML解析 DOM方式:一次性将整个XML文档加载进内存,比较消耗内存,适合小文件,可以随机解析任何一个节点 SAX方式:从根元素开始,按顺序一个元素一个元素的往下解析,比较适合大文件,缺点;不能往回 ...
- 关于XML解析的常用方式
关于XML解析的方式(个人喜爱的方式,有些不常用的就不写了) 需要的jar包 dom4j / jaxen XML示例(该文件放置于src目录下) <?xml version="1.0& ...
- iOS 中的 xml 解析
在ios 中解析xml 的方法有很多种 1.苹果原生 NSXMLParser:SAX方式解析,使用简单 2.第三方框架 libxml2:纯c语言,默认包含在ios sdk中,同时支持DOM 和 SA ...
- JavaXml教程(二)使用DOM方式解析XML文件
DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...
- 安卓XML解析的几种方式(DOM,SAX,PULL..)
在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull) ...
- 粤嵌学习打卡第19天(基于DOM方式解析、生成XML文档)
今天我们来聊聊基于DOM方式实现解析和生成XML文档 一般web开发的xnl文档: 基于DOM处理XML文档 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SIQAET ...
- XML解析的三种方式(dom,sax,dom4j)
1.Dom解析: 要解析的xml文件内容: <?xml version="1.0" encoding="utf-8" standalone="n ...
最新文章
- SMOTE算法代码实现-机器学习
- Google 排名第一的语言,引数十万人关注:搞定它,技术大牛都甘拜下风
- matlab 中的dir函数使用
- HarmonyOS之组件布局的创建和使用
- java随机星星怎么闪_canvas画随机闪烁的星星
- 仿照支付宝账单界面--listview分组显示 用来做!发!财树充值交易明细
- 认证授权方案之授权揭秘 (上篇)
- java.io.NotSerializableException: com.codahale.metrics.MetricRegistry
- 【推荐实践】微博多尺度序列推荐算法实践.pdf(附下载链接)
- Since WWDC released the first developer
- 【Transformer】没有什么多模态任务是一层Transformer解决不了的!
- CDN技术原理以及所用技术介绍
- 解决kali linux 和 win10 双系统时间不一致问题
- C Function Complement
- 高光谱知识(1)-高光谱成像技术的理解
- Unity 百度智能对话API
- 权威发布丨2022 中国开源先锋 33 人之心尖上的开源人物
- js数组实现图片轮播
- 通过IDEA进行class文件代码反编译
- Java日期时间的设置问题