前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java解析XML(一) 使用DOM读取XML文件

Java解析XML(一) 使用DOM读取XML文件

作者头像
青山师
发布2023-05-05 17:26:44
发布2023-05-05 17:26:44
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

DOM

DOM 是最容易使用的java XML解析器。它可以解析一个完整的XML文档并将其加载到内存中,然后用对象对其进行建模,以实现简单的node遍历。DMO是将XML直接加载到内存中进行处理的,所以不建议解析较大的XML文件。

读取XML文件

目标文件xmlDemo.xml

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<note auth="Byron.y.y">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

java代码使用dom4j解析XML文件

代码语言:javascript
代码运行次数:0
运行
复制
package byron4j.xml;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class DomDemo1 {
	public static void main(String[] args) throws Exception{
		
		String classPath = DomDemo1.class.getClass()
					.getResource("/").getPath();
		
		File file = new File(classPath);
		String fth = file.getParent();
		File fFile = new File(fth);
		String xmlPath = fFile.getParent() + "\\src\\xmlDemo.xml";
		
		
		File fXmlFile  = new File(xmlPath);
		
		DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
		DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
		Document doc = dBuilder.parse(fXmlFile);

		doc.getDocumentElement().normalize();

		System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

		NodeList nList = doc.getElementsByTagName("note");

		System.out.println("----------------------------");

		for (int temp = 0; temp < nList.getLength(); temp++) {

			Node nNode = nList.item(temp);

			System.out.println("\nCurrent Element :" + nNode.getNodeName());

			if (nNode.getNodeType() == Node.ELEMENT_NODE) {

				Element eElement = (Element) nNode;
				System.out.println("author==> : " +eElement.getAttribute("auth"));
				System.out.println("1==> : " + eElement.getElementsByTagName("to").item(0).getTextContent());
				System.out.println("2==> : " + eElement.getElementsByTagName("from").item(0).getTextContent());
				System.out.println("3==> : " + eElement.getElementsByTagName("heading").item(0).getTextContent());
				System.out.println("4==> : " + eElement.getElementsByTagName("body").item(0).getTextContent());
				

			}
		}
	}
}

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
Root element :note
----------------------------

Current Element :note
author==> : Byron.y.y
1==> : Tove
2==> : Jani
3==> : Reminder
4==> : Don't forget me this weekend!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DOM
  • 读取XML文件
    • 目标文件xmlDemo.xml
    • java代码使用dom4j解析XML文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档