社区
Java
帖子详情
JAVA dom4j如何获取XML嵌套节点属性值
enoone1
2016-05-16 09:33:28
如题,XML内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<test>
<a name="1">
<a name="2">测试</a>
</a>
</test>
用
dom4j
提供的方法,如何解出a节点name属性值,即获得1 2 (
*a节点可能嵌套了多个a节点,所以节点路径不能写死*
)
求源码,多谢
...全文
337
2
打赏
收藏
JAVA dom4j如何获取XML嵌套节点属性值
如题,XML内容如下: 测试 用dom4j提供的方法,如何解出a节点name属性值,即获得1 2 (*a节点可能嵌套了多个a节点,所以节点路径不能写死*) 求源码,多谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
enoone1
2016-05-17
打赏
举报
回复
在大侠基础上稍改了下,selectNodes("//a/@name") 这样能获取正确的节点属性
SuperMan_log
2016-05-16
打赏
举报
回复
SAXReader reader = new SAXReader(); Document doc = reader.read(new File("my.xml")); List<Attribute> list = doc.selectNodes("/*/*/@name"); for(Attribute ele:list){ String text = ele.getText(); System.out.println(text); }
day023-
xml
解析笔记和代码.rar
1.
XML
1.1. 概念:
XML
(eXtensible Markup Language),是一种可扩展的标记语言 1.2. 作用:
XML
是跨平台和跨语言的 不同的语言都支持
XML
解析(将
XML
转换为对应语言中的数据) 1. 数据交换格式(一般不用了,用json代替了) 2. 配置文件都使用
XML
格式,框架都是用
xml
和Properties作为配置文件。 1.3. 使用:(掌握) 语法:
xml
version="1.0" encoding="UTF-8"?>
XML
的语法格式: 第一行用了定义
xml
文件的,写版本号和字符集 1.注释不能放到第一行 1.必需有声明,声明必需在第一行。 2.文档声明的字符编码必需和文档本身的编码一致 2.标签不能交叉
嵌套
使用(标签名字随便定义) 1. 双标签 : <双标签>双标签>一般是有下一级的 2. 单标签 :<单标签/> 如果没有下一级,就可以用单标签 3.有开始有结束 4.不数字开头,只能以字母或下划线开头; 5.只能有一个根标签;表示不能再有其他平级标签 6.严格区分大小写 7.一个标签不能有两个相同
属性
(
属性
名随便定义)
属性
直接写在头标签内,格式:
属性
名="
属性
值
" 8.特殊符号需要转义 或者可以放到CDATA区 html特殊符号,转义符号 9.编码格式统一: 1.开发环境:项目环境、系统环境 2.当前文件内encoding字符集 10.不能以
xml
(或者
XML
,
Xml
等)开头W3C保留日后使用; 例如:最好不要使用 <
xml
:xx>
xml
: xx>W3C保留以后在使用 11.名称字符之间不能有空格或者制表符; 例如<四川 省> 12.名称字符之间不能使用冒号;<
xml
:xx>
xml
: xx> 注意: 1.
Xml
中空格和换行都表示数据,严格区分大小写 1.4
XML
约束:(了解) 1. 概念:就是限制一个
XML
文件中标签和
属性
等的使用,只能按照某种规则书写 便于其他程序员学习。 2. 作用: 1. 代码校验 2. 代码提示 3. 利于达成共识形成规范 3. 约束分类: 1. DTD约束:Document Type Definition文档类型定义 例如: 2. schema约束:
xml
Schema Definition xsd文件 例如:
xml
version="1.0" encoding="UTF-8" ?>
xmlns:xs="http://www.w3.org/2001/
XML
Schema" targetNamespace="http://itsource.cn" elementFormDefault="qualified">
1.5.
XML
解析(最重要) DOM: 文档对象模型 将一个
XML
(html)文档 的每一个元素解析成
java
中的一个一个的对象 D Document 文档(
XML
文档) : 磁盘上面的
xml
文件 O Object 对象(
Java
对象) : 把
xml
文件封装成
Java
对象 M Model 模型 解析过程中用到的类: Document Node(
节点
) Element (元素) Attribute(
属性
) - Attr Text(文本)
dom4j
解析: 支持xpath解析,就可以可以直接输入一个路径查找: 由于
DOM4J
在解析
XML
时只能一层一层解析,所以当
XML
文件层数过多时使用会很不方便, 结合XPATH就可以直接
获取
到某个元素 使用
dom4j
支持xpath的操作的几种主要形式 第一种形式 /a/b/c: 表示一层一层的,a下面 b下面的c 第二种形式 //b: 表示和这个名称相同,表示只要名称是b,都得到 第三种形式 /* : 所有元素 第四种形式 a[1]: 表示第一个a元素 a[last()]:表示最后一个a元素 第五种形式 //a[@id]: 表示只要a元素上面有id
属性
,都得到 第六种形式 //a[@id='b1'] 表示元素名称是a,在a上面有id
属性
,并且id的
属性
值
是b1 使用
dom4j
支持xpath具体操作 默认的情况下,
dom4j
不支持xpath,如果想要在
dom4j
里面是有xpath, 第一步需要,引入支持xpath的jar包,如下: jaxen-1.1-beta-6.jar 在
dom4j
里面提供了两个方法,用来支持xpath selectNodes("xpath表达式"),
获取
多个
节点
selectSingleNode("xpath表达式"),
获取
一个
节点
步骤: 1. 在项目下创建一个lib文件夹folder 2. 复制
dom4j
的jar包到lib文件夹中 3. 选中jar右键buildpath 4. 在测试类中使用
dom4j
解析
XML
。(今天开始学习别人的api)
dom4j
中使用到的方法: 1.创建SaxReader对象 SAXReader reader = new SAXReader(); 2.设置命名空间 reader.getDocumentFactory().setXPathNamespaceURIs(map); 3. SAXReader对象调用read方法,将当前
XML
文件,转换为Document对象 document = reader.read(file); 4.
获取
根
节点
root = document.getRootElement(); 5. 通过父签添加子标签(元素) Element element = root.addElement("标签名");//返回
值
就是要添加的元素对象 给子标签添加
值
element.setText("标签
值
"); 6. 给当前标签添加
属性
:xxx ,
值
是:xxx Element attribute = linkman.addAttribute("
属性
名","
值
"); 通过
属性
对象attribute
获取
属性
值
attribute.setText("
值
"); 通过
属性
对象attribute
获取
属性
值
String
值
= attribute.getText(); 7.
获取
当前元素标签名 String name = e.getName();
获取
当前元素标签
值
String text = e.getText(); 8.
获取
指定名字的子标签(元素) root.element(String name); 9.
获取
所有子标签(元素) root.elements(); 10.在
dom4j
里面提供了两个方法,用来支持xpath selectNodes("xpath表达式"),
获取
当前名字的多个
节点
selectSingleNode("xpath表达式"),
获取
一个
节点
Java
利用
dom4j
解析
XML
任意
节点
和
属性
分享一个
Java
解析
XML
字符串的方法,利用了
dom4j
,递归。可解析任意
节点
及
节点
属性
值
。 package test; import
java
.io.IOException; import
java
.io.StringWriter; import
java
.util.HashMap; import
java
.util.Iterator; import
java
.util.List; import...
java
dom4j
读写
xml
_
dom4j
读写
XML
文档
要使用
dom4j
读写
XML
文档,需要先下载
dom4j
包,
dom4j
官方网站在 http://www.
dom4j
.org/目前最新
dom4j
包下载地址:http://nchc.dl.sourceforge.net/sourceforge/
dom4j
/
dom4j
-1.6.1.zip解开后有两个包,仅操作
XML
文档的话把
dom4j
-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入...
Java
中用
Dom4j
对
XML
文件进行解析,生成Document对象,
获取
元素(标签)信息
Java
中用
Dom4j
对
XML
文件进行解析,生成Document对象,
获取
元素(标签)信息
java
、
Dom4j
、循环迭代递归解析
XML
,不论是否是叶子
节点
、有复合结构
网上有很多
Dom4j
解析
xml
的
java
代码,但是都忒简单了啊! 关键是大多都是知道
xml
嵌套
了几层的情况下,但是大多数时候都没有那么简单啊! 先贴一个简单的方法,附上解析用的简单
xml
xml
version="1.0" encoding="UTF-8"?>
冰与火之歌
<
Java
50,528
社区成员
85,607
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章