XML

Dom4JReader

流程:
1、获取要解析的文件对象 File
2、获取解析器
3、通过解析器将文件对象转换成Document对象
4、得到Document对象的根元素
5、得到根元素的子元素
6、遍历,得到子元素的名和文本值

	public static void main(String[] args) throws Exception {
		// 1、获取要解析的文件对象 File
		File file = new File("src/test.xml");
		// 2、获取解析器
		SAXReader reader = new SAXReader();
		// 3、通过解析器将文件对象转换成Document对象
		Document document = reader.read(file);
		// 4、得到Document对象的根元素
		Element root = document.getRootElement();
		// 5、得到根元素的子元素
		Iterator<Element> iter = root.elementIterator();
		// 6、遍历,得到子元素的名和文本值
		while(iter.hasNext()) {
			Element element = iter.next();
			System.out.println(element.getName() + "--" + element.getStringValue());
		}
	}

Dom4JWriter

1、使用DocumentHelper来创建 Document对象
2、创建元素并设置关系
3、设置文本
4、创建格式化输出器
5、输出到文件
6、写出

	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();
		
	}

Dom解析

1、建 立 DocumentBuilderFactory,解析工厂
2、建立DocumentBuilder,得到分析器
3、将要被解析xml文件转换成Document文档
4、解析指定节点

public static void main(String[] args) throws Exception {
		// 1、建 立 DocumentBuilderFactory,解析工厂
		DocumentBuilderFactory factory =  DocumentBuilderFactory.newInstance();
		// 2、建立DocumentBuilder,得到分析器
		DocumentBuilder builder = factory.newDocumentBuilder();
		// 3、将要被解析xml文件转换成Document文档
		Document document = builder.parse("src/test.xml");
		// 4、解析指定节点
		NodeList root = document.getElementsByTagName("People"); // 根元素  People
		// 遍历根节点 
		for(int i = 0; i < root.getLength(); i++) {
			NodeList childNodes = root.item(i).getChildNodes();
			// 遍历子元素
			for(int j = 0; j < childNodes.getLength(); j++) {
				Node user = childNodes.item(j);
				// 得到标签的名称
				// String userName = user.getNodeName(); // user
				// 得到user标签的子节点
				NodeList userChild = user.getChildNodes();
				// 遍历
				for (int a = 0; a <userChild.getLength(); a++) {
					System.out.println("标签名:" + userChild.item(a).getNodeName());
					System.out.println("文本:" + userChild.item(a).getTextContent());
				}
			}
			
		}
	}

Dom创建Document对象

1, 获取解析器工厂
2, 获取解析器
3, 创建文档
4, 创建元素、设置关系
5, 获得变压器工厂
6, 设置编码
7, 创建带有DOM节点的新输入源,充当转换Source树的持有者
8, 充当转换结果的持有者

public static void main(String[] args) throws Exception {
		//获取解析器工厂
		DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
		//获取解析器
		DocumentBuilder builder=factory.newDocumentBuilder();
		//创建文档
		Document doc=builder.newDocument();
		//创建元素、设置关系
		Element root = doc.createElement("people");
		Element person = doc.createElement("person");
		Element name = doc.createElement("name");
		Element age = doc.createElement("age");
		name.appendChild(doc.createTextNode("shsxt"));
		age.appendChild(doc.createTextNode("10"));
		doc.appendChild(root);
		root.appendChild(person);
		person.appendChild(name);
		person.appendChild(age);
		//写出去
		// 获得变压器工厂
		TransformerFactory tsf=TransformerFactory.newInstance();
		Transformer ts=tsf.newTransformer();
		//设置编码
		ts.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
		//创建带有DOM节点的新输入源,充当转换Source树的持有者
		DOMSource source=new DOMSource(doc);
		//充当转换结果的持有者
		File file=new File("src/output.xml");
		StreamResult result=new StreamResult(file);
		ts.transform(source, result);
		
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值