package net.fiyu.edit;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class UpdateXml {
public static boolean doc2XmlFile(Document document, String filename) {
boolean flag = true;
try {
/** 将document中的内容写入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
// transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
} catch (Exception ex) {
flag = false;
ex.printStackTrace();
}
return flag;
}
public static Document load(String filename) {
Document document = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(filename));
document.normalize();
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}
/**
* 演示修改文件的具体某个节点的值
*/
public static void xmlUpdateDemo(String path, String p_value) {
System.out.println("传到后台的path的值::" + path + "-------------------");
Document document = load(path);
Node root = document.getDocumentElement();
/** 如果root有子元素 */
if (root.hasChildNodes()) {
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循环取得ftp所有节点 */
for (int i = 0; i < ftpnodes.getLength(); i++) {
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k = 0; k < ftplist.getLength(); k++) {
Node subnode = ftplist.item(k);
/** 删除ftp-chn节点 */
// if
// (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="ftp-chn")
// {
// ftpnodes.item(i).removeChild(subnode);
// }
/** 修改ftp-host的值为 192.168.0.1 */
if (subnode.getNodeType() == Node.ELEMENT_NODE
&& subnode.getNodeName() == "suploaddir") {
subnode.getFirstChild().setNodeValue(p_value);
}
}
}
}
doc2XmlFile(document, path);
}
public static void main(String args[]) throws Exception {
String p_value = "/data/news/3719/";
UpdateXml
.xmlUpdateDemo(
"D:\\Tomcat\\webapps\\ROOT\\WEB-INF\\style.xml",
p_value);
}
}
分享到:
相关推荐
在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明。 首先,Java中的`javax.xml.parsers`和`org.w3c.dom`包提供了处理XML的基本工具。`javax.xml....
为了读取XML文件,开发者通常会利用Java API或第三方库。本篇将详细介绍如何在Java中读取XML文件,以及如何利用第三方库增强XML处理能力。 首先,Java标准库JDK提供了一个内置的API——javax.xml.parsers包,它包含...
Java 读取 XML 文件的四种方法 在 Java 中读取 XML 文件有多种方法,本文将介绍四种常见的方法,分别使用 DOM、DOM4J、JDOM 和 SAX 解析器。 第一种方法:使用 DOM DOM(Document Object Model)是一种树形结构,...
JAVA 高手解析 XML 配置文件的读取操作 本文主要讲解了 Java 中如何读取 XML 配置文件,并对 XML 解析器进行了分类,分别介绍了 DOM 和 SAX 两种解析方式的特点和使用场景,并提供了一个使用 SAX 解析器读取 XML ...
二、Java操作XML文件设置值 1. DOM解析:使用DOM解析XML文件时,可以查找特定节点并修改其属性或文本内容。例如: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform....
用WC3的DOM实现对XML文件的读取。 方法摘要: //通过文件路径及文件名读取xml public XMLReader(String path, String filename); //初始化读取包下的的XML文件 public XMLReader(Package package1, String fileName)...
下面将详细介绍如何使用JDOM来读取XML文件。 首先,我们需要了解XML的基本概念。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它的结构清晰,易于人和机器理解,广泛应用于网络...
然后,调用`parse()`方法读取XML文件并将其解析为`Document`对象。 - JAXB解析:如果XML文件与Java对象模型有明确的一对一关系,JAXB提供了一种更便捷的方法。使用`Unmarshaller`可以从XML文件中创建Java对象,而`...
Java操作XML文件是软件开发中常见的任务,XML(Extensible Markup Language)因其结构化和可扩展性被广泛用于数据交换和存储。以下是一些关于如何使用Java处理XML文件的关键知识点: 1. **JAXB(Java Architecture ...
Java 读取 XML 文件的四种方法 在 Java 中读取 XML 文件有多种方法,本文将介绍四种常用的方法:DOM 实现方法、DOM4J 实现方法、JDOM 实现方法和SAX 实现方法。 DOM 实现方法 DOM(Document Object Model)是 W3C...
本项目中,你创建了一个自定义的Java类,用于实现XML文件的基本操作,包括读取、属性和值的读取以及元素的增加和删除。 首先,我们来了解一下XML文件的基础操作。XML文件由一系列元素组成,每个元素可能包含属性和...
### 一、Java读取XML文件 #### 1. 使用DOM解析器 DOM(Document Object Model,文档对象模型)是一种平台和语言中立的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。在Java中,可以使用`...
要读取XML文件,开发者通常会使用特定的库或API,本案例中提到了“JDOM”,这是一个Java API,用于处理XML文档。 **JDOM简介** JDOM是Java Document Object Model的缩写,它是Java开发人员处理XML文档的一种高效、...
通过DOM4J,我们可以方便地读取XML文件,找到特定元素,并从中提取数据。此外,它还支持XPath表达式,这在寻找包含图片数据的特定节点时非常有用。 2. **Jaxen库介绍**: Jaxen是用于多种Java XML API的XPath...
- `DocumentBuilder.parse()`方法用于读取XML文件并生成`Document`对象。 - `Document`对象提供了查找和修改元素的方法,如`getElementsByTagName()`, `getElementsByTagnameNS()`, `getElementById()`等。 - 要...
本教程将重点介绍如何使用SAXReader在Java中读取XML文件。 SAXReader是JDOM库中的一个类,它实现了SAX解析器接口,适用于处理大型XML文档,因为它不会将整个XML文档加载到内存中,而是采用事件驱动的方式,逐个处理...
而SAX解析器采用事件驱动的方式,逐行读取XML文件,适合处理大型XML文件以避免内存消耗。 对于多级XML,DOM解析更便于操作。以下是一个使用Java DOM解析XML的步骤: 1. 引入必要的库: 需要引入`javax.xml....
SAX解析器采用事件驱动的方式,逐行读取XML文件,触发相应的事件处理器。这种方式节省了内存,适合处理大文件。在Java中,需要实现DefaultHandler接口并重写其方法,然后通过SAXParserFactory获取SAXParser进行解析...
在Java中,SAX解析器不直接支持修改XML文件,但我们可以使用一种间接的方法来实现这一目标:先读取XML文件,然后在内存中构建一个新的XML结构,再将这个新结构写回文件。下面是一个简化的步骤: 1. **创建SAX解析器...
本篇文章将深入探讨如何在Java中自行动手创建程序来导出XML文件。 XML文件的生成通常涉及两个主要步骤:创建XML文档结构和填充数据。首先,我们需要了解XML的基本语法。XML文档以`<?xml version="1.0" encoding=...