xml的定义
自行百度。
xml结构
- 文档头。如
<?xml version="1.0"?>
或者<?xml version="1.0" encoding=“utf-8”?>
- 文档类型定义(
DTD
) - 根元素(包含其他元素)
文档头和文档类型定义都可以不写,有什么影响?我也不知道,出问题再说,但是如果写了文档头应该要写版本号,否则报错。亲试
文档解析
- 文档构造工厂
DocumentBuilderFactory factory
=DocumentBuilderFactory.newInstance();
- 文档构造器
DocumentBuilder builder
=factory.newDocumentBuilder();
- 生成文档对象, 得到根元素
//生成文档对象
Document doc
= builder.parse("D:\\JavaWorkpalce\\testServlet\\src\\main\\resources\\tes.xml");
//得到根元素
Element root = doc.getDocumentElement();
- 获取相应的元素以及其中内容,这里必须要注意到
NodeList
,他是Node
的列表(当然不是List的子类),而且Node
的类型包括子元素、文本、注释或其他节点。可通过类型转换,得到相应类型。一个元素的内容由子元素、子元素间空隙内容(如文本)、子元素与父元素空隙内容构成。
Element stu = (Element) root.getElementsByTagName("stu").item(0);
NodeList list = stu.getChildNodes();
getTextContent
得到元素以及子元素的内容
getNodeValue
得到非元素内容(可以用来得到文本元素内容)
System.out.println(list.getLength());
for (int i = 0; i < list.getLength() - 1; i++) {
Node node = list.item(i);
if (node instanceof Element) {
System.out.println(node.getTextContent());
}else {
System.out.println(node.getNodeValue());
}
}
<?xml version="1.0" encoding="utf-8" ?>
<student>
<stu>
文本
<name>名字</name>
<age>21</age>
</stu>
</student>