8,906
社区成员
发帖
与我相关
我的任务
分享
import javax.xml.parsers.*;
import org.xml.sax.*;
import java.io.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.DOMSource;
//导入的是对DOM 和Transformer的支持
public class code
{
static Document document;
public static void main(String[] args)
{
if(args.length!=1)
{
System.out.println("加载xml file");
return;
}
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db=dbf.newDocumentBuilder();
//读入xml文档
document=db.parse(new File(args[0]));
//获得根元素
Node root=document.getDocumentElement();
//获得根元素的子节点列表
NodeList childs=root.getChildNodes();
//元素1
Element newnode1=(Element)document.createElement("element1");
//设置元素1的值
newnode1.appendChild(document.createTextNode("abc"));
//先定位,找到要插入元素1位置的结点,假设是第二个结点
Node secondnode =childs.item(1);
//把元素1插入到原第二个结点之前
root.insertBefore(newnode1,secondnode);
Element newnode2=(Element)document.createElement("element2");
newnode2.appendChild(document.createTextNode("def"));
//把这个元素放到最后
root.appendChild(newnode2);
//利用transformer对象将修改后的文档重新输出
TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(document);
//将xml文档保存
StreamResult result = new StreamResult(new java.io.File("f:\\mylinks.xml"));
transformer.transform(source, result);
}
//捕捉可能出现的异常
catch(SAXException se)
{
Exception e=se;
if(se.getException()!=null)
e=se.getException();
e.printStackTrace();
}
catch(ParserConfigurationException pe)
{
pe.printStackTrace();
}
catch(IOException ie)
{
ie.printStackTrace();
}
catch (TransformerException te)
{
throw new RuntimeException(te.getMessage());
}
}
}