`
234390216
  • 浏览: 10229991 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462464
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775253
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398190
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394950
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679882
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530779
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183620
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467476
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151281
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68026
社区版块
存档分类
最新评论

dom4j生成和解析xml文件

    博客分类:
  • xml
阅读更多

在生成xml文件指定生成的目的地和文件的输出方式时,如果使用的是Writer,那么在生成的xml中含有中文的时候会出现中文乱码,此时就只能使用OutputStream了,因为Writer遇到中文的时候不知道该如何解析。

如:XMLWriter writer = new XMLWriter(new FileOutputStream(dest), format);

 

 

 

 

 

 

/**
	 * 创建xml文件
	 * @param dest
	 * @throws IOException
	 */
	public static void createXml(String dest) throws IOException {
		//新建一个document
		Document document = DocumentHelper.createDocument();
		//设置输出字符集
		document.setXMLEncoding("UTF-8");
		//新建一个位于document下的元素persons
		Element personsEle = document.addElement("persons");
		for (int i=1;i<6;i++) {
			//新建一个位于persons下的元素person
			Element person = personsEle.addElement("person");
			//添加属性
			person.addAttribute("id", String.valueOf(i));
			person.addAttribute("sex", new String("女".getBytes()));
			Element name = person.addElement("name");
			name.setText("person"+i);
		}
		//美化输出格式
		OutputFormat format = OutputFormat.createPrettyPrint();
		//新建一个XMLWriter,同时指定输出位置和格式
		XMLWriter writer = new XMLWriter(new FileOutputStream(dest), format);
		//把新建好的document写到指定输出位置
		writer.write(document);
		writer.close();
	}
	
	/**
	 * 读取并解析xml文件
	 * @param fileName
	 * @throws DocumentException
	 */
	public static void readXml(String fileName) throws DocumentException {
		SAXReader reader = new SAXReader();
		Document document = reader.read(Util.class.getClassLoader().getResourceAsStream(fileName));
		Element root = document.getRootElement();
		iteratorEle(root);
	}
	
	/**
	 * 通过父节点来遍历其下的所有子节点,并取出它们的文本值和属性值
	 * @param root
	 */
	public static void iteratorEle(Element root) {
		String rootName = root.getName();
		Iterator iter = root.elementIterator();
		while (iter.hasNext()) {
			Element ele = (Element) iter.next();
			String eleName = ele.getName();
			System.out.println("元素"+rootName+"有子节点"+eleName);
			Iterator attrIter = ele.attributeIterator();
			while (attrIter.hasNext()) {
				Attribute attr = (Attribute)attrIter.next();
				String attrName = attr.getName();
				String attrValue = (String)attr.getData();
				System.out.println("元素"+rootName+"的子元素"+eleName+"的属性"+attrName+"的值是:"+attrValue);
			}
			if (ele.isTextOnly()) {
				String content = ele.getText();
				System.out.println("元素"+rootName+"的子元素"+eleName+"的值是:"+content);
			}
			iteratorEle(ele);
		}
	}

 

0
2
分享到:
评论

相关推荐

    利用Dom4j生成XML和解析XML

    在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j 生成 XML 文档非常简单。首先,我们需要创建一个 Document 对象,然后添加元素和属性。下面是一个生成 XML 文档的...

    Dom4j解析和生成XML文档

    DOM4J解析XML文档: DOM4J通过构建DOM树(Document Object Model)来解析XML。DOM模型是一种将XML文档转换为内存中对象树的表示方式。在DOM4J中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建`...

    dom4J生成xml、解析xml、生成xml文件实例

    这篇博客()可能详细介绍了如何使用DOM4J来生成和解析XML文件,这对于处理XML文档的开发人员来说是非常有用的工具。 **1. 生成XML文件** 生成XML文件主要涉及以下步骤: - **创建Document对象**:DOM4J通过`...

    Dom4J生成XML的完整方法希望大家能用到

    Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    dom4j解析及生成 xml代码收集

    解析XML文件后,DOM4J会构建一个`Document`对象树,你可以通过这个树来访问和操作XML的所有元素。 - **Element对象**:`Element`是XML文档中的节点,相当于HTML的`&lt;tag&gt;`。DOM4J提供了丰富的API来操作元素,如获取...

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    生成、解析xml的四种方式(dom,dom4j,sax,jdom)

    本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...

    DOM4j创建和解析XML文档

    在这个主题中,我们将深入探讨DOM4j如何帮助我们创建和解析XML文档,以及其背后的原理和用法。 首先,DOM4j采用了Document Object Model(DOM)的概念,但它比标准的Java DOM实现更加轻量级,性能更优。DOM4j的核心...

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    通过Dom4j创建和读取xml文件下载

    - **Dom4jUtil.java**: 包含DOM4J相关的实用工具函数,如创建和解析XML的辅助方法。 - **Dom4jTest.java**: 测试类,使用JUnit编写,用于验证DOM4JUtil的功能是否正常工作。 - **说明.txt**: 提供了关于如何使用这些...

    dom4j API 用于解析XML的java库

    DOM4J作为解析XML的工具,其主要功能和特性包括: 1. **DOM模型**:DOM4J提供了基于DOM(Document Object Model)的接口,允许开发者以树形结构操作XML文档。通过`Document`对象,可以访问XML文档的根元素,并通过`...

    dom4j生成XML文档及解析

    在这个场景中,我们将深入理解如何使用DOM4J来生成XML文档以及如何解析XML内容。 首先,生成XML文档涉及以下几个主要步骤: 1. **创建Document对象**:`DocumentHelper.createDocument()`方法用于创建一个新的XML...

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    dom4j解析xml

    在提供的文件列表中,`Test.java`可能包含使用DOM4J解析XML的示例代码。通常,这样的代码会包含以下部分: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; // ...

    java dom4j中生成xml文件

    Java DOM4J库是用于处理XML文档的一个强大的开源框架,它提供了一种简单而灵活的方式来创建、解析和操作XML文件。DOM4J这个名字中的“DOM”代表文档对象模型(Document Object Model),这是一种标准的API,用于在...

    dom4j解析xml,利用反射机制

    在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...

Global site tag (gtag.js) - Google Analytics