java修改xml
⑴ java後台如何修改tomcat下xml文件的內容
其實都可以通過讀文件歷薯念,用dom4j進行改,然後寫文件。
是說tomcat下面web工程中的xml還是tomcat中的配置的xml啊。工程下的應該還有,主要找對路徑就可肢困以了,tomcat的配置xml可能會存手判在許可權問題。
⑵ java 讀取和修改本地xml配置文件
dom4j解析
package demo;
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;
import java.util.*;
public class WriteXML {
public void writer(){
//在內存中創建一個文檔對象
Document doc=DocumentHelper.createDocument();
//往文檔對象中添加一個元素
Element root=doc.addElement("users");
//將上面創建元素的設為根元素
doc.setRootElement(root);
//為根元素添加一個名稱為user的子元素
Element user1=root.addElement("user");
//為user子元素添加一個id的屬性 並賦值
user1.addAttribute("id","1");
//為user子元素添加一個子元素
Element name1=user1.addElement("name");
//為name子元素設置文本
name1.setText("zz");
Element config1=user1.addElement("config");
config1.setText("fullscreen");
Element user2=root.addElement("user");
//為user子元素添加一個id的屬性 並賦值
user2.addAttribute("id","2");
//為user子元素添加一個子元素
Element name2=user2.addElement("name");
//為name子元素設置文本
name2.setText("xx");
Element config2=user2.addElement("config");
config2.setText("widescreen");
//下面將會進行輸出產生XML文件
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
format.setIndent(true);
format.setNewLineAfterNTags(1);
format.setNewlines(true);
try {
XMLWriter writer=new XMLWriter(new FileOutputStream("users.xml"),format);
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*
Element user2=user1.createCopy();
user2.attribute("id").setValue("2");
Iterator it=user2.elementIterator();
while(it.hasNext()){
it.next();
}*/
}
}
⑶ 在android中怎樣在java類里修改xml文件中的內容
你可以是用java自己的sax,dom進行xml文件解析,在去修改文件內容,不過推薦你使用Android自帶的pull解析xml文件,很簡單就解決了。
⑷ java 修改了 XML 文件 如何保存文件
在修改document後,塵察亮可以使用jdk提供的Transformer講dom樹轉換成xml。
Source xmlSource = new DOMSource(document);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Result result = new StreamResult(new File("..."));
transformer.transform(xmlSource, result); // 保存dom至目的沒源文件
希望派寬能幫上你。
⑸ 使用java如何修改某個xml文件中的某項內容
代碼如下:
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import java.io.*;
public class xml{
public void toXml() throws JDOMException,IOException{
SAXBuilder saxBuilder=new SAXBuilder(false);
saxBuilder.setExpandEntities(false);
File file = new File("c:\\test.xml");
Document doc =saxBuilder.build(new File("c:\\test.xml"));
Element elem=doc.getRootElement();
//System.out.println(elem.toString());
elem.getChild("Collectors").getChild("Collector"手握).getAttribute("敗茄HostIP").setValue("192.168.0.1");
elem.getChild("Collectors").getChild("Collector").getAttribute("PortID").setValue("100000");
Element elem1 = (Element)elem.clone();
Document Doc=new Document(elem1);
XMLOutputter XMLOut = new XMLOutputter();
XMLOut.setEncoding("畢枯慶BIG5");
XMLOut.setNewlines(true);
file.delete();
XMLOut.output(Doc,new FileOutputStream("c:\\test"+".xml"));
}
public static void main(String args[]){
xml x = new xml();
try{
x.toXml();
}catch(Exception e){}
}
}
⑹ java怎樣讀寫和修改XML文件
xml:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<Messages>
<sendName>sendUsers</sendName>
<receiveName>snake</receiveName>
<date>2007-12-04 12:20:00</date>
<status>0</status>
<message>this is Content</message>
</Messages>
</users>
java:
package com.lianxi.DAO;
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()
{
Document document = load("c://Message.xml");
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()=="status")
{
subnode.getFirstChild().setNodeValue("1");
}
}
}
}
doc2XmlFile(document,"c://Message.xml");
}
public static void main(String args[])throws Exception
{
UpdateXml.xmlUpdateDemo();
}
}
⑺ java窗體程序 打包jar後 怎麼動態修改xml配置信息,請問哪位大神會啊
這種做法很不好呀,應該在窗體程襪好稿序中增加一個配置文件,原包中的xml文件做襪雹為原始告孝配置不動,窗體程序運行時可做一個菜單項「配置」,新做的配置修改保存到本地一個xml文件中,以後啟動窗體程序時先檢查有沒有這個本地xml文件,有則從它裡面讀入配置,否則從類路徑的jar中讀取配置
⑻ java xml節點添加修改屬性
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileInputStream("d.xml"));
Element root = doc.getRootElement();
List<Element> list = root.selectNodes("//here");
for (Element e : list) {
System.out.println(e);
e.addAttribute("color", "q");
}
// 保存
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(doc);
writer.close();
⑼ java的xml的解析方式有什麼,他們的解析流程是怎麼樣的,有什麼區別
答:4種。(或者說是兩種,因為JDOM和DOM4J是DOM的兩個特殊情況)
1.SAX解析
解析方式是事件驅動機制!
SAX解析器,逐行讀取XML文件解析,每當解析到一個標簽的開始/結束/內容/屬性時,觸發事件。
可以在這些事件發生時,編寫程序進行相應的處理。
優點:
分析能夠立即開始,而不是等待所有的數據被處理。
逐行載入,節省內存,有助於解析大於系統內存的文檔。
有時不必解析整個文檔,它可以在某個條件得到滿足時停止解析。
缺點:
1.單向解析,無法定位文檔層次,無法同時訪問同一個文檔的不同部分數據(因為逐行解析,當解析第n行時,第n-1行)已經被釋放了,無法再對其進行操作)。
2. 無法得知事件發生時元素的層次, 只能自己維護節點的父/子關系。
3. 只讀解析方式, 無法修改XML文檔的內容。
2. DOM解析
是用與平台和語言無關的方式表示XML文檔的官方W3C標准,分析該結構通常需要載入整個 文檔和內存中建立文檔樹模型。程序員可以通過操作文檔樹, 來完成數據的獲取 修改 刪除等。
優點:
文檔在內存中載入, 允許對數據和結構做出更改。訪問是雙向的,可以在任何時候在樹中雙向解析數據。
缺點:
文檔全部載入在內存中 , 消耗資源大。
3. JDOM解析
目的是成為Java特定文檔模型,它簡化與XML的交互並且比使用DOM實現更快。由於是第一 個Java特定模型,JDOM一直得到大力推廣和促進。
JDOM文檔聲明其目的是「使用20%(或更少)的精力解決80%(或更多)Java/XML問題」 (根據學習曲線假定為20%)
優點:
使用具體類而不是介面,簡化了DOM的API。
大量使用了Java集合類,方便了Java開發人員。
缺點:
沒有較好的靈活性。
性能不是那麼優異。
4. DOM4J解析
它是JDOM的一種智能分支。它合並了許多超出基本XML文檔表示的功能,包括集成的XPath 支持、XML Schema支持以及用於大文檔或流化文檔的基於事件的處理。它還提供了構建文檔表示的選項, DOM4J是一個非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是一 個開放源代碼的軟體。如今你可以看到越來越多的Java軟體都在使用DOM4J來讀寫XML。
目前許多開源項目中大量採用DOM4J , 例如:Hibernate。
⑽ java批量修改txt和xml
DateInputStream dis=new DateInputStream(new FileInputStream(filepath,true));
說說這句代碼吧。。型岩。首先DateInputStream 應該是DataInputStream 是一個數據輸入流。。不是date。。。
然後是 new FileInputStream(filepath,true),FileInputStream應該是一個禪和文件輸入流吧。。你在賀租盯jdk的api裡面有找到一個(String,boolean)這樣的構造么?、、