java dom4j读取xml_Java DOM4J读取XML[通俗易懂]

java dom4j读取xml_Java DOM4J读取XML[通俗易懂]DOM4J是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,採用了Java集合框架并全然支持DOM,SAX和JAXP。Hibernate也是用它来读写配置文件的。一、DOM4j的下载dom4j-1.6.1.jar下载:http://sourceforge.net/directory/os:windows/fr…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

DOM4J是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,採用了Java集合框架并全然支持DOM,SAX和JAXP。Hibernate也是用它来读写配置文件的。

一、DOM4j的下载

dom4j-1.6.1.jar 下载:http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=dom4j

二、DOM4j解析XML文件

AirPortLine.xml文件例如以下:<?xml version=”1.0″ encoding=”UTF-8″?>

1

1

武汉

2

石家庄

3

北京

2

1

重庆

2

武汉

3

上海

4

东京

3

1

上海

2

纽约

Java DOM4J解析XML代码例如以下:package com.hsinghsu.testXML;

import java.io.File;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class testDOM4J {

public static void main(String[] args) {

try {

File file = new File(“AirPortLine.xml”);

SAXReader reader = new SAXReader();

Document doc = reader.read(file);

parseDOM4J(doc);// 解析XML文档

//String xmlStr = getStringFromXML(doc);// 将XML文档转换为String

//System.out.println(“xmlStr:” + xmlStr);

//String str = “<?xml version=’1.0′ encoding=’UTF-8′?>11武汉2石家庄3北京21重庆2武汉3上海4东京31上海2纽约”;

//Document document = getXMLDocFromString(str);// 将String转换为XML文档

} catch (Exception e) {

System.out.println(“Can’t read the file”);

}

}

// 解析XML文档

private static void parseDOM4J(Document doc) {

Element root = doc.getRootElement();

for (Iterator iter = root.elementIterator(“line”); iter.hasNext();) {// 遍历line结点的全部子节点,也能够使用root.elementIterator()

Element element = (Element) iter.next();

Attribute lidAttr = element.attribute(“lid”);// 获取元素的属性

String lid = lidAttr.getValue();// 获取元素的属性值

Attribute numAttr = element.attribute(“num”);// 获取元素的属性

String num = numAttr.getValue();// 获取元素的属性值

String id = element.elementText(“id”);// 获取元素下的值

System.out.println(“==lid:” + lid);

System.out.println(“==num:” + num);

System.out.println(“==路线id:” + id);

for (Iterator iterInner = element.elementIterator(“station”); iterInner.hasNext();) { // 遍历station结点的全部子节点

Element elementInner = (Element) iterInner.next();

String sid = elementInner.elementText(“sid”);// 获取元素下的值

String sname = elementInner.elementText(“sname”);// 获取元素下的值

System.out.println(“—-站–sid:” + sid);

System.out.println(“—-站–sname:” + sname);

}

}

}

// 将XML文档转换为String

private static String getStringFromXML(Document doc) {

return doc.asXML();

}

// 将String转换为XML文档

private static Document getXMLDocFromString(String str) {

try {

return DocumentHelper.parseText(str);

} catch (DocumentException e) {

e.printStackTrace();

return null;

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159391.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 两种方式实现java Md5加密

    两种方式实现java Md5加密一、加盐方式/***生成32位md5码*@parampassword*@return*/publicstaticStringmd5Password(Stringpassword){try{//得到一个信息摘要器MessageDigestdigest=

    2022年7月15日
    18
  • try catch里面try catch嵌套

    try catch里面try catch嵌套trycatch里能否内嵌trycatch?答案是肯定的。但是等内层trycatch出异常之后是个什么执行顺序呢?看下面代码staticvoidMain(string[]args){try{Console.WriteLine(“———————-外层try——————————“);error

    2022年6月16日
    27
  • Python中sys模块

    sys-系统特定的参数和功能该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。sys.argv传递给Python脚本的命令行参数列表。argv[0]是脚本名称(依赖于操作系统,无论这是否是完整路径名)。如果使用-c解释器的命令行选项执行命令,argv[0]则将其设置为字符串’-c’。如果没有脚本名称传递给Python解释器,argv[0]则为空字符串…

    2022年4月5日
    52
  • 变异系数法之matlab

    变异系数法之matlab1.简介2.算法原理2.1指标正向化2.2数据标准化2.3计算变异系数2.4计算权重以及得分3.实例分析3.1读取数据3.2指标正向化3.3数据标准化3.4计算变异系数3.5计算权重3.6计算得分完整代码

    2022年4月29日
    77
  • 高手入门STM32总结+学习步骤

    高手入门STM32总结+学习步骤一、入门总结1.1为什么要把时间花在“犹豫”上?每当我们在入门之前(ARM是这样,DSP也一样),总会有很多疑问,会有很多顾虑。我们渴望知道学习STM32前景如何?需要啥基础?难不难?适不适合我?但是什么时候能心潮澎湃地、相当着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。大家可能是从51单片机过来的,回想一…

    2025年9月7日
    7
  • springboot和springmvc的区别

    springboot和springmvc的区别面试题:你知道springboot和springmvc的区别是什么?之前自己搭过springboot的相关项目,但是如何进行比较,从自我感觉来看就是使用springboot用起来几乎没有配置,个人搭的项目没有用到配置相关的内容。于是我就用了这个回答给面试官,可想而知,这种回答并不好。于是现在百度了相关文章,就把理解写成博客当做笔记。springmvc从两个方面…

    2022年6月10日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号