求一段 修改 xml文件的java代码

以及所用的包... 以及所用的包 展开
 我来答
百度网友4db9f31
2008-06-07 · TA获得超过410个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:327万
展开全部
主要是这几个包:
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom.DOMSource
javax.xml.transform.stream.StreamResult
org.w3c.dom

import java.io.*;
import java.util.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tools.Vote;//自己的类

//载入
private DocumentBuilderFactory dbf=null;
private DocumentBuilder db=null;
private Document doc=null;
private List listXml=null;

public Document loadXml(File file)
{
try
{
dbf=DocumentBuilderFactory.newInstance();
db=dbf.newDocumentBuilder();
doc=db.parse(file);
}
catch(Exception e)
{
e.printStackTrace();
}
return doc;
}
// 添加节点
public void addOptionXmlData(File file,int parentPos,String option)
{
if(doc==null){
doc=loadXml(file);
}
try
{
Element root=doc.getDocumentElement();
Element voot=(Element)root.getElementsByTagName("vote").item(parentPos);
Element optionNode=doc.createElement("option");
voot.appendChild(optionNode);
optionNode.setTextContent(option);
optionNode.setAttribute("sum", "0");
}catch(Exception ex){
ex.printStackTrace();
}
try//保存到XML文件
{
TransformerFactory tf=TransformerFactory.newInstance();
Transformer t=tf.newTransformer();
Properties props=t.getOutputProperties();
props.setProperty(OutputKeys.ENCODING, "gb2312");
t.setOutputProperties(props);
DOMSource dom=new DOMSource(doc);
StreamResult sr=new StreamResult(file);
t.transform(dom, sr);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式