有此XML文件,文件名为:Test1XMLDocument,此文件的路径为(E:/JavaProject/JavaStudy/src/com/xml/Test1XMLDocument.xml)
此XML内容为下:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<people>
<abb>
<name>xiaobai</name>
<age>26</age>
</abb>
<faimly>
<name>pef</name>
<num>3</num>
</faimly>
</people>
</root>
使用JAVA来读取此XML的信息。
首先,我们需要读取此XML文件,我们创建一个DocumentBuilderFactory对象factory。之后在根据此factory创建一个builder对象
。
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
有了创建好的builder对象,我们就可以把XML文件读入了,这里有3种读入方式,分别为:
1.从文件中:
File file= ...;
Document document = builder.parse(file);
2.从一个URL读取:
URL url= ...;
Document document = builder.parse(url);
3.从一个指定的任意输入流:
InputStream in=...;
Document document = builder.parse(in);
以下代码就是描述XML文件从文件中获取:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("E:/JavaProject/JavaStudy/src/com/xml/Test1XMLDocument.xml"));
正确读入XML文件后,我们就可以对此XML文件进行操作了。我们可以使用org.w3c.dom包下的Document接口对其进行控制(关于Document接口提供的方法,可以查看JDK文档)。
现在,我们可以使用document接口下的getDocumentElement()方法来获取此XML文件的根元素,来分析此XML的内容。
具体代码:(这里的document为刚以上代码获取的document实例)
Element root = document.getDocumentElement();
获取了XML文件里的根元素之后,我们就可以来查找此XML的子节点了:
NodeList list = root.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node element = (Node) list.item(i);
System.out.println(element);
}
打印出:
[#text:
]
[people: null]
[#text:
]
这里的输出多出了
[#text:
]
[#text:
]
这里表面此XML文件中有空格,如果把上面的XML文件改成如下形式:
<?xml version="1.0" encoding="UTF-8"?>
<root><people>
<abb>
<name>xiaobai</name>
<age>26</age>
</abb>
<faimly>
<name>pef</name>
<num>3</num>
</faimly>
</people></root>
在次运行,结果将为:
[people: null]
找到原因了,修改代码,去掉空格:
NodeList list = root.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node element = (Node) list.item(i);
//去掉XML里的空格。
if(element instanceof Element ){
System.out.println(element);
}
现在输出:
[people: null]
现在,我们修改以下以上的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<people>
<abb>
<name>xiaobai</name>
<age>26</age>
</abb>
<faimly>
<name>pef</name>
<num>3</num>
</faimly>
</people>
<bug>
<name>css</name>
<deep>8</deep>
</bug>
</root>
现在,在执行一下以上的代码:
NodeList list = root.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node element = (Node) list.item(i);
//去掉XML里的空格。
if(element instanceof Element ){
System.out.println(element);
}
现在输出:
[people: null]
[bug: null]
从这里可以看出,我们根据得到的NodeList list的实例,根据item方法进行对list的索引,得到了root下的儿子(子节点)。
分享到:
相关推荐
通过不同的库方法读取修改xml文件。通过java实现。代码易懂
java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件
利用Java下的IO读取或写入xml及word,txt文件,且能有效去除乱码(很适用,且和POI组建比,少占了很多内存),这是我根据网上很多不同的版本,整合而出的一种最易最好的IO读写文件代码;
用java读取xml文件的四种方法
简单利用java读取xml中的标签,也是写xml
文档中有代码案例,详细讲解了使用java读取xml,并附带有关于xml的dtd讲解,里面包含详细的文档和代码案例。和读取xml所需的jar。
java读取 xml文件 的源代码实现自己的Spring
java 读写xml文件操作, 简单易懂
java读写xml文件的例子,供参考
用java读取txt文件 并且格式化输出读取到的信息 用java读取excel的xml格式文件 对信息进行分类 并且格式化输出有效内容
使用Java读取XML配置文件
java读写xml的代码
java从xml中读入数据并存入到sqlserver2005数据库中
java递归读取xml文件
java实现读取xml文件内容
java心电图xml解析源码。
该资源包含了java四种方式读取和写入xml文件的代码
java_java写XML文件和读取XML文件
java四种xml读写demo