介绍
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!-- 需要有版本声明 -->
-
注释使用与html中风格一致
- <? :XML声明的开始字符
-
xml: 表示当前是xml文件
-
version:xml的版本:目前只有1.0.国际标准
-
standalone:表示xml文件是否独立:
- 如果值是"yes".表示xml是独立存在的,不能引入外部的规范文件;
- 如果值是"no",表示xml不是独立存在的,可以引入外部的规范文件;
-
encoding:指定文件的所使用的字符编码:默认"utf-8"
-
?> : XML声明的结束字符
8. 注意:
1. 文本文件保存时默认的编码格式ANSI,需用记事本把它手动改为UTF-8保存
2. 需要在文件第一行有版本声明
3. 必须有且仅有一个根元素
4. 严格区分大小写
5. 属性值用引号(双引号或单引号):等号分开的名称-值对;在一个元素上,相同的属性只能出现一次
6. 标记成对
7. 空标记关闭
8. 元素正确嵌套
<!-- 根元素 -->
<shsxt>
<teacher>
<!-- 标签成对出现 ,属性值用引号-->
<name age="18">Lisa</name>
<gender>女</gender>
</teacher>
<teacher age="19">
<name>李四</name>
<gender>男</gender>
</teache
Dom4j解析
-
得到要解析的文件file对象
- 得到读取器 SaxReader
- 通过读取器 SaxReader得到Document对象
- 得到Document对象得到根节点
- 迭代所有的子节点,得到对应结果
public class Dom4jDemo {
@SuppressWarnings("unchecked") // 抑制警告
public static void main(String[] args) throws Exception {
// 1、得到要解析的文件file对象
File file = new File("src/test.xml");
// 2、得到读取器 SaxReader
SAXReader reader = new SAXReader();
// 3、通过读取器 SaxReader得到Document对象
Document document = reader.read(file);
// 4、得到Document对象的根节点
Element element = document.getRootElement();
// 打印根节点
System.out.println(element.getName());
// 5、得到根节点的所有子节点
Iterator<Element> iterator = element.elementIterator();
// 6、迭代所有的子节点,得到对应结果
while(iterator.hasNext()) {
// 得到每一个子节点
Element e = iterator.next();
//System.out.println(e.getName() + "====" + e.getStringValue());
//System.out.println(e.getName() + "====" + e.getText());
String name = e.elementText("name");
System.out.println(name + " = " + e.elementText("gender") );
}
}
}
//通过使用DocumentHelper来创建 Document对象
public class Dom4jWriter {
public static void main(String[] args) throws Exception {
// 使用DocumentHelper来创建 Document对象
Document document = DocumentHelper.createDocument();
// 创建元素并设置关系
Element person = document.addElement("person");
Element name = person.addElement("name");
Element age = person.addElement("age");
// 设置文本
name.setText("shsxt");
age.setText("10");
// 创建格式化输出器
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("utf-8");
// 输出到文件
File file = new File("src/outputdom4j.xml");
XMLWriter writer = new XMLWriter(new FileOutputStream(new
File(file.getAbsolutePath())),of);
// 写出
writer.write(document);
writer.flush();
writer.close();
}
}