❶ java如何向xml文件写入内容
解析(也就是读取)的话,可以采用SAX解析,或者DOM4J (dom for java)解析,写入的话,可以采用dom写入,SAX和DOM4J都是Apache的开源项目,你可以从官网上搜到相关的Jar包,导入的Eclipse即可使用,至于代码示例的话,网络谷歌一下,栗子很多,希望能帮到你。
❷ java怎么把解析的xml数据添加到数据库中
java一种简单的解析xml方法是用DOM进行解析, dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。具体使用方法可以参照如下链接
http://blog.csdn.net/redarmy_chen/article/details/12969219
解析出来添加到数据库就不用说了,用什么框架肯定有相应操作数据库的方法。
❸ JAVA中如何向XML文件中插入数据
cxzucc - 主管 六级 2009-11-12 20:32
sax,dom,dom4j,jdom等都是可以的,先看看资料吧
****************************************
这位仁兄说的不是对的,SAX是不能插入结点的。当然如果你说用SAX读到内存中创建一棵树再写回去那我就无言了。 像jdom、dom4j这些学一个其它的都懂了,没太大的区别。
输入这些关键字一搜网上的例子太多了
❹ 通过java如何操作xml向其节点中添加内容比如<say>想添加的内容</say>
<say>我是个字符串可以随便填</say>
你是要代码吗
InputStream is= this.getClass.getInputStream("my.xml");
在通过 is获得内容我就说他是 String xml=is....
String str="想添加的内容";
String newxml=xml.replace("我是个字符串可以随便填",str);
❺ java对xml文件添加节点
/*
这里使用了dom4j组件,你需要自己去下载dom4j。
其中a.xml是你的源文件。
这个程序没有向磁盘中创建一个新文件,你可以自己修改代码。
例如:
XMLWriter xmlWriter = new XMLWriter(new PrintWriter(System.out), format);
可以修改为
XMLWriter xmlWriter = new XMLWriter(new FileWriter("a.xml"), format);
这样就可以修改源文件a.xml了。
*/
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.SAXReader;
import java.io.*;
public class Test {
public static void main(String[] args) {
SAXReader saxReader = new SAXReader();
try {
Document doc = saxReader.read(new File("a.xml"));
doc.getRootElement().addElement("PARAM")
.addElement("TASKLIST").addElement("TASK")
.addElement("DATA_TRAN_ID").addCDATA("14595");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("gb2312");
XMLWriter xmlWriter = new XMLWriter(new PrintWriter(System.out), format);
xmlWriter.write(doc);
xmlWriter.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
}
❻ java如何在为XML添加新节点
dom操作Java,需要下载dom4j.jar包。
具体操作请见:http://blog.csdn.net/cds27/archive/2008/03/02/2139110.aspx
❼ 怎么在java类中加载xml文件
JAVA与XML文件,可以说是软件开发的“黄金搭档”,而如何使用JAVA完成对XML文件的读取,是我们首先要解决的问题。
一、XML文件
这个示例文件包括了用来打开ORACLE数据库的各种参数
<?xml version="1.0" encoding="UTF-8"?>
<dbmsg>
<dbinfo>
<drivername>oracle.jdbc.driver.OracleDriver</drivername>
<sConnStr>jdbc:oracle:thin:@11.88.225.80:1521:VOUCHERDB</sConnStr>
<username>SYS AS SYSDBA</username>
<password>voucherdb</password>
</dbinfo>
</dbmsg>
二、编写类名为ReadXml的类,用于解析XML文件
我们要在应用程序中打开数据库,就必须完成对该文件中drivername、sConnStr、username、password的读取,通过查找有关资料,笔者编制了以下程序,用于读取文件名为filename的XML文件。
package voucher.basic;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class ReadXml {
private String drivername;
private String sConnStr;
private String username;
private String password;
public String getDrivername() {
return drivername;
}
public String getSConnStr() {
return sConnStr;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setDrivername(String drivername) {
this.drivername = drivername;
}
public void setSConnStr(String connStr) {
sConnStr = connStr;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public ReadXml(String fileName){
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(fileName);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();
NodeList dbinfo=root.getChildNodes();
if(dbinfo!=null){
for(int i=0;i<dbinfo.getLength();i++){
Node db=dbinfo.item(i);
for(Node node=db.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("drivername")){
setDrivername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("sConnStr")){
setSConnStr(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("username")){
setUsername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("password")){
setPassword(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这个以ReadXml命名的类,使用了参数为文件名的构造方法,用户只要将配置文件我名称传递给该方法,就可以完成对XML文件的解析,进而完成对相应参数数的读取。
三、如何获取XML文件全路径并读取配置参数
获取XML文件全路径的方法有两个,一是在servlet中获取,二是在单独的JAVA类中获取。
1.在servlet中获取XML文件的全路径并读取配置参数
程序片段String dirPath = getServletContext().getRealPath( "/WEB-INF");
String fileName = dirPath + "/conn.xml";
ReadXml xm = new ReadXml(fileName);
String DriverName = xm.getDrivername();
String connStr = xm.getSConnStr();
String user = xm.getUsername();
String pas = xm.getPassword();
将这段程序添加到servlet中dopost()之后即可完成参数的读取
2.在单独的JAVA类中获取全路径并读取配置参数
程序片段
String dirpath = System.getProperty("user.dir");
String xmlFile = dirpath + "/WebRoot/WEB-INF/conn.xml";
ReadXml rdxml = new ReadXml(xmlFile);
String driverName = rdxml.getDrivername();
String sConnStr = rdxml.getSConnStr();
String userName = rdxml.getUsername();
String passWord = rdxml.getPassword();
注:配置文件conn.xml保存在webroot/WEB-INF目录中。
❽ 怎么通过java代码向xml文件中添加注释
package com.tuobao.test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class testDom4j {
private static final String path = "f:" + java.io.File.separator
+ "eee.xml";
/**
* @param args
*/
public static void main(String[] args) {
// System.out.println(createXMLFile(path));
// System.out.println(modiXMLFile(path, path));
System.out.println(formatXMLFile(path));
}
/**
* 建立一个XML文档,文档名由输入属性决定
*
* @param param
* filename 需建立的文件名
* @return返回操作结果, 0表失败, 1表成功
*/
public static int createXMLFile(String filename) {
/** 返回操作结果, 0表失败, 1表成功 */
int returnValue = 0;
/** 建立document对象 */
Document document = DocumentHelper.createDocument();
/** 建立XML文档的根books */
Element booksElement = document.addElement("books");
/** 加入一行注释 */
booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");
/** 加入第一个book节点 */
Element bookElement = booksElement.addElement("book");
/** 加入show属性内容 */
bookElement.addAttribute("show", "yes");
/** 加入title节点 */
Element titleElement = bookElement.addElement("title");
/** 为title设置内容 */
titleElement.setText("Dom4j Tutorials");
/** 类似的完成后两个book */
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show", "yes");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene Studing");
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show", "no");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene in Action");
/** 加入owner节点 */
Element ownerElement = booksElement.addElement("owner");
ownerElement.setText("O'Reilly");
try {
/** 将document中的内容写入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new java.io.File(
filename)));
writer.write(document);
writer.flush();
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
} catch (Exception ex) {
returnValue = 0;
ex.printStackTrace();
}
return returnValue;
}
/**
* 修改XML文件中内容,并另存为一个新文件 重点掌握dom4j中如何添加节点,修改节点,删除节点
*
* @param filename
* 修改对象文件
* @param newfilename
* 修改后另存为该文件
* @return 返回操作结果, 0表失败, 1表成功
*/
public static int modiXMLFile(String filename, String newfilename) {
int returnValue = 0;
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new java.io.File(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项内容改为"测试修改"
* 并在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("测试修改");
Element dateElement = ownerElement.addElement("date");
dateElement.setText("2008-09-11");
dateElement.addAttribute("type", "日期");
}
/** 修改内容之三: 若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 {
/** 格式化输出,类型IE浏览一样 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
// format.setEncoding("GBK");
/** 将document中的内容写入文件中 */
// XMLWriter writer = new XMLWriter(new FileWriter(new
// File(newfilename)),format);
// 保证编码为UTF-8,支持中文写入
XMLWriter writer = new XMLWriter(new FileOutputStream(new File(
newfilename)), format);
writer.write(document);
writer.flush();
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
} catch (Exception ex) {
returnValue = 0;
ex.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return returnValue;
}
/**
* 格式化XML文档,并解决中文问题
*
* @param filename
* @return
*/
public static int formatXMLFile(String filename) {
int returnValue = 0;
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
XMLWriter writer = null;
/** 格式化输出,类型IE浏览一样 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
format.setEncoding("utf-8");
writer = new XMLWriter(new FileWriter(new File(filename)), format);
writer.write(document);
writer.flush();
writer.close();
/** 执行成功,需返回1 */
returnValue = 1;
} catch (Exception ex) {
returnValue = 0;
ex.printStackTrace();
}
return returnValue;
}
}
这个希望对你有用。。
❾ java XML添加文本内容
bookElement.setTextContent("鹿鼎记");