DOM4j读取XML基本操作及常见错误

简介:              前段时间用dom4j读取配置文件的时候,当时报了个小bug,后来中间去做别的东西了,几天又把那段代码拿出来调了下,发现ok了。 一,基本使用       为了使用这个东西读配置文件,首先引入:             下面是测试代码:    pu...



             前段时间用dom4j读取配置文件的时候,当时报了个小bug,后来中间去做别的东西了,几天又把那段代码拿出来调了下,发现ok了。


 一,基本使用


       为了使用这个东西读配置文件,首先引入:


     


       下面是测试代码:

   

public class DOM4Jtest {

	public static void main(String[] args){
		SAXReader reader=new SAXReader();
		try {
			/*获取节点值*/
			Document document=reader.read("H:/lhcInfo.xml");
			Element root=document.getRootElement();//获取文档的根节点
			Attribute attribute=root.attribute("age");//取得根节点的age的属性值
			String strAge=attribute.getText();//得到属性文字
			System.out.println("my age is: "+strAge);//console输出age
			
			Element element_hobby=root.element("hobby");//取得根节点上的hobby节点
			Element element_read_books=element_hobby.element("books");//取得read_books节点
			/*读取read_books里面的所有节点的值*/
			for(Iterator it=element_read_books.elementIterator();it.hasNext();){
				Element element=(Element)it.next();
				String strVal=element.getText();//得到节点值
				System.out.println(strVal);
			}
			
			/*更改节点值*/
			
			
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		
	}
}

      xml文件:

   

<?xml version="1.0" encoding="UTF-8"?>
<lhc name="lhc" age="23" sex="girl">
	<hobby>
		<books>
			<item>明朝那些事儿</item>
			<item>基督山伯爵</item>
			<item>编写可读代码的艺术</item>
			<item>就喜欢你看不惯我又干不掉我的样子</item>
		</books>
	</hobby>
</lhc>

      run一下,木有问题了。


   二,注意:bugs

           1,unknown protocol: d Nested exception: unknown protocol: d


                           查了下,出现这个问题的原因可能是:1,tomcat安装目录下面有空格;2,xml文件路径中有中文。检查了下,发现我是第二个原因


             2,java.lang.NullPointerException


                         这个在读写节点的时候还是常出现的,有时候一手抖,打错了个字母,就要回去检查看看哪个节点名称写错了。







                


    

目录
相关文章
|
2月前
|
XML JavaScript Java
【JAVA XML 探秘】DOM、SAX、StAX:揭秘 Java 中 XML 解析技术的终极指南!
【8月更文挑战第25天】本文详细探讨了Java中三种主流的XML解析技术:DOM、SAX与StAX。DOM将XML文档转换为树状结构,便于全方位访问和修改;SAX采取事件驱动模式,适用于大型文件的顺序处理;StAX则兼具DOM和SAX的优点,支持流式处理和随机访问。文中提供了每种技术的示例代码,帮助读者理解如何在实际项目中应用这些解析方法。
75 1
|
3月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM 规范, 但仍存在差异, 主要是处理空白和换行的不同。例如, 在 XML 中, Internet Explorer 不会将空白或换行视为文本节点, 而其他浏览器则会。这会导致相同的 XML 文档在 IE 中的子节点数为 4, 而在其他浏览器中为 9:
|
3月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM, 但在处理空白和换行上存在差异。例如, 使用记事本编辑的 XML 可能包含 CR/LF 和额外空格。IE 不将空白视作文本节点, 与其他浏览器不同。
|
3月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
所有 modern browsers 支持 W3C DOM, 但在处理空白和换行上存在差异。例如, 使用记事本编辑的 XML 可能包含 CR/LF 和额外空格。IE 不将空白视作文本节点, 而其他浏览器则会。这会导致对相同 XML 文档的 `childNodes` 长度计算不同: IE 显示 4 个子节点, 其他浏览器显示 9 个。
|
3月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: 1. 使用 `getElementsByTagName()` 方法, 2. 遍历节点树, 3. 利用节点间的关联进行导航。 `getElementsByTagName()` 返回一个 Node List, 即节点数组。
|
3月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
输出子节点的数量。结果取决于您所使用的浏览器。IE 浏览器会输出 4(提醒 4 个子节点),而其他浏览器会输出 9(提醒 9 个子节点)。
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
遍历(Traverse)意味着在节点树中进行循环或移动。
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
遍历(Traverse)意味着在节点树中进行循环或移动。
|
3月前
|
XML 存储 JavaScript
XML DOM - 访问节点
通过 DOM, 可全面访问 XML 文档的节点。实现这一目标有 3 种方法: - 使用 `getElementsByTagName()` 方法, - 循环遍历节点树, - 利用节点间关系进行导航。 `getElementsByTagName()` 返回一个 Node List,即一种节点数组形式。示例代码通过 `loadXMLDoc()` 函数加载 &quot;books.xml&quot; 文件到 `xmlDoc` 变量中,并随后在变量 `x` 中保存所需节点信息。
|
3月前
|
XML Web App开发 JavaScript
XML DOM 解析器
解析器把 XML 转换为 JavaScript 可存取的对象(XML DOM)。