-
一.java类
-
package
com.java.test; -
-
import
org.w3c.dom.*; -
import
javax.xml.parsers.*; -
import
java.io.*; -
-
public
class JavaReadXml { -
//
Document可以看作是XML在内存中的一个镜像,那么一旦获取这个Document 就意味着可以通过对 -
//
内存的操作来实现对XML的操作,首先第一步获取XML相关的Document -
private
Document doc = null; -
-
public
void init(String xmlFile) throws Exception { -
//
很明显该类是一个单例,先获取产生DocumentBuilder工厂 -
//
的工厂,在通过这个工厂产生一个DocumentBuilder, -
//
DocumentBuilder就是用来产生Document的 -
DocumentBuilderFactory
dbf = DocumentBuilderFactory.newInstance(); -
DocumentBuilder
db = dbf.newDocumentBuilder(); -
//
这个Document就是一个XML文件在内存中的镜像 -
doc
= db.parse(new File(xmlFile)); -
}
-
-
//
该方法负责把XML文件的内容显示出来 -
public
void viewXML(String xmlFile) throws Exception { -
this.init(xmlFile);
-
//
在xml文件里,只有一个根元素,先把根元素拿出来看看 -
Element
element = doc.getDocumentElement(); -
System.out.println("根元素为:"
+ element.getTagName()); -
-
NodeList
nodeList = doc.getElementsByTagName_r("person"); -
System.out.println("book节点链的长度:"
+ nodeList.getLength()); -
-
Node
fatherNode = nodeList.item(0); -
System.out.println("父节点为:"
+ fatherNode.getNodeName()); -
-
//
把父节点的属性拿出来 -
NamedNodeMap
attributes = fatherNode.getAttributes(); -
-
for
(int i = 0; i < attributes.getLength(); i++) { -
Node
attribute = attributes.item(i); -
System.out.println("person的属性名为:"
+ attribute.getNodeName() -
+
" 相对应的属性值为:" + attribute.getNodeValue());//原作者这块写的是book的属性名,经调试应该是person的 -
}
-
-
NodeList
childNodes = fatherNode.getChildNodes(); -
System.out.println(childNodes.getLength());
-
for
(int j = 0; j < childNodes.getLength(); j++) { -
Node
childNode = childNodes.item(j); -
//
如果这个节点属于Element ,再进行取值 -
if
(childNode instanceof Element) { -
//
System.out.println("子节点名为:"+childNode.getNodeName()+"相对应的值为"+childNode.getFirstChild().getNodeValue()); -
System.out.println("子节点名为:"
+ childNode.getNodeName() -
+
"相对应的值为" + childNode.getFirstChild().getNodeValue()); -
}
-
}
-
-
}
-
-
public
static void main(String[] args) throws Exception { -
JavaReadXml
parse = new JavaReadXml(); -
-
//
我的XML文件 -
parse.viewXML("person.xml");
-
}
- }
-
二.xml文件
-
<?xml
version="1.0" encoding="UTF-8"?> -
<book>
-
<person>
-
<first>wang</first>
-
<last>laohu</last>
-
<age>25</age>
-
<version>中国邮电出版社</version>
-
</person>
-
<person>
-
<first>li</first>
-
<last>junjia</last>
-
<age>24</age>
-
<version>清华大学出版社</version>
-
</person>
- </book>
-
三.输出结果
根元素为:book
book节点链的长度:2
父节点为:person
9
子节点名为:first相对应的值为wang
子节点名为:last相对应的值为laohu
子节点名为:age相对应的值为25
子节点名为:version相对应的值为中国邮电出版社
-
<?xml
JAVA读取xml文件
最新推荐文章于 2023-05-25 14:49:17 发布
本文介绍了一个使用Java从XML文件中读取数据的示例程序。程序通过DocumentBuilderFactory和DocumentBuilder解析XML,并展示了如何获取XML文件的根元素、属性及子节点等内容。
1458

被折叠的 条评论
为什么被折叠?



