newfilename 修改后另存为该文件
* @return 返回操作结果, 0表失败, 1表成功
*/
public int ModiXMLFile(String filename,String newfilename){
int returnValue = 0;
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
//Document document=saxReader.read(new StringReader(filename));
/** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */
/** 先用xpath查找对象 */
List list = document.selectNodes("/books/book/@show" );
Iterator iter = list.iterator();
while(iter.hasNext()){
Attribute attribute = (Attribute)iter.next();
if(attribute.getValue().equals("yes")){
attribute.setValue("no");
}
}
/**
* 修改内容之二: 把owner项内容改为Tshinghua
* 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type
*/
list = document.selectNodes("/books/owner" );
iter = list.iterator();
if(iter.hasNext()){
Element ownerElement = (Element)iter.next();
ownerElement.setText("Tshinghua");
Element dateElement = ownerElement.addElement("date");
dateElement.setText("2007-09-06");
dateElement.addAttribute("type","Gregorian calendar");
}
/** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */
list = document.selectNodes("/books/book");
iter = list.iterator();
while(iter.hasNext()){
Element bookElement = (Element)iter.next();
Iterator iterator = bookElement.elementIterator("title");
while(iterator.hasNext()){
Element titleElement=(Element)iterator.next();
if(titleElement.getText().equals("Dom4j Tutorials")){
bookElement.remove(titleElement);
}
}
}
try{
/** 将document中的内容写入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File(newfilename)));
writer.write(document);
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
/**
* 格式化XML文档,并解决中文问题
* @param filename
* @return
*/
public int formatXMLFile(String filename){
int returnValue = 0;
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
XMLWriter writer = null;
/** 格式化输出 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
format.setEncoding("GBK");
writer= new XMLWriter(new FileWriter(new File(filename)),format);
writer.write(document);
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
public static void main(String[] args) {
Dom4jDemo temp = new Dom4jDemo();
temp.createXMLFile("e://myxml.xml");
//temp.formatXMLFile("e://myxml.xml");
//temp.ModiXMLFile("e://myxml.xml", "e://myxml2.xml");
//System.out.println(temp.createXMLFile("d://testxml.xml"));
//System.out.println(temp.ModiXMLFile("d://testxml.xml","d://testxml2.xml"));
// try{
//System.out.println(temp.formatXMLFile("d://testxml2.xml"));
// // System.out.println(temp.formatXMLFile("E:\\test.xml"));
// }
// catch(Exception e)
// {
// // e.printStackTrace();
// System.out.print("error!");
//
// }
}
}
分享到:
相关推荐
Java中如何解析XML文件,创建xml文件,增、删、改、查 xml节点信息
总结,Java使用DOM4J库解析XML文件涉及到读取文件、获取根元素、遍历元素和属性、提取文本内容、创建和修改XML以及保存XML。DOM4J因其易用性和强大的功能,成为Java开发者处理XML的首选工具之一。在实际项目中,根据...
- JAXB解析:如果XML文件与Java对象模型有明确的一对一关系,JAXB提供了一种更便捷的方法。使用`Unmarshaller`可以从XML文件中创建Java对象,而`Marshaller`可以将Java对象转换回XML。 2. **导入数据到MySQL**: ...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
在Java中,JDOM提供了两种主要的方式来解析XML文件:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的,逐行解析文件,适用于大文件,内存消耗小;而DOM则将整个XML文件加载到内存中,...
在Java编程语言中,创建XML(可扩展标记语言)文件是一项常见的...总之,Java创建XML文件的过程涉及到DOM解析、元素和属性的创建、文本节点的添加以及文件的序列化。掌握这些知识点有助于在项目中灵活地处理XML数据。
本文将详细讲解四种解析XML文件的方法,旨在帮助初学者更好地理解和掌握XML处理技术。 1. DOM解析器(Document Object Model) DOM解析器将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这个方法的优点...
1. DOM解析:使用`javax.xml.parsers.DocumentBuilderFactory`和`DocumentBuilder`创建一个解析器实例,然后调用`parse()`方法解析XML文件,返回一个`Document`对象。之后,可以通过`Document`对象的`...
在Java中,处理XML文件是常见的任务,包括创建XML文档和解析XML内容。这个压缩包提供了一个Web工程,其中包含了XML的创建与解析的示例代码,适合在Eclipse环境下运行。 创建XML文档通常涉及以下几个步骤: 1. **...
使用DOM方法读取XML文件,需要创建DocumentBuilderFactory对象,获取DocumentBuilder对象,然后解析XML文件得到Document对象。最后,使用Document对象的getElementsByTagName方法获取指定标签的节点列表,并遍历节点...
本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...
标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...
总结,调用Java中的Web服务并解析XML涉及到了Web服务的基础概念、Java的Web服务客户端创建、XML解析技术以及实际的调用与响应处理。熟练掌握这些知识点,能够帮助开发者有效地集成和利用各种Web服务资源。
Java代码PDF解析成XML是一项技术任务,涉及到Java编程语言、PDF文档处理和XML数据格式转换。在这个场景中,我们主要关注如何使用Java库iTextPDF将PDF文档中的内容解析为XML结构。 首先,我们需要理解PDF(Portable ...
总结来说,利用JDOM解析XML文件,我们可以轻松地将XML结构转换为Java对象,这对于数据的序列化和反序列化非常有用。通过JDOM,开发者可以快速地读取XML数据,根据类名创建对象,并设置相应的属性,实现数据的高效...
### 使用Java语言解析XML文件的关键知识点 #### 一、引言 XML(可扩展标记语言)是一种用于存储和传输数据的标准格式。它以其强大的结构化数据表示能力而被广泛应用于不同场景,例如配置文件、数据交换等。Java作为...
3. 使用parse()方法解析XML文件,传入输入流和之前创建的处理器对象。 二、DOM解析XML文件 DOM(Document Object Model)将整个XML文档加载到内存中,形成一棵树形结构,方便遍历和操作。对于小规模的XML文件,DOM...
本教程将详细介绍如何在Android环境下解析XML文件,以"ReadXMLDemo"为例,展示具体步骤和关键知识点。 首先,XML(eXtensible Markup Language)是一种自定义标记语言,它的结构清晰,易于读写,适合于数据交换和...
在解析XML文件时,Java提供了多种API,其中最常用的是DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中形成一棵树形结构,方便对整个文档进行随机访问,但消耗资源较大。SAX...
在 Java 中使用 DOM 方式解析 XML 文件需要使用 JAXP(Java API for XML Processing),首先需要创建一个解析器工厂,然后使用工厂创建一个具体的解析器对象。然后,使用解析器对象来解析 XML 文件,得到一个 ...