XML

介绍

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>  <!-- 需要有版本声明   -->
  1. 注释使用与html中风格一致

    1. <? :XML声明的开始字符
    2. xml: 表示当前是xml文件

    3. version:xml的版本:目前只有1.0.国际标准

    4. standalone:表示xml文件是否独立:

      1. 如果值是"yes".表示xml是独立存在的,不能引入外部的规范文件;
      2. 如果值是"no",表示xml不是独立存在的,可以引入外部的规范文件;
    5. encoding:指定文件的所使用的字符编码:默认"utf-8"

    6. ?> : 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解析

  1. 得到要解析的文件file对象

    1. 得到读取器 SaxReader
    2. 通过读取器 SaxReader得到Document对象
    3. 得到Document对象得到根节点
    4. 迭代所有的子节点,得到对应结果
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();
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值