
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.FileOutputStream
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.Element
public class Test {
public static void generate(){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance()
DocumentBuilder builder = factory.newDocumentBuilder()
Document document = builder.newDocument()
document.setXmlVersion("1.0")
document.setXmlStandalone(true)
Element root = document.createElement_x("MobileNet") //创建根节点
document.appendChild(root) //将根节点添加到Document对象中
Element pageElement = document.createElement_x("page")//设置第一个page元素到
pageElement.setAttribute("name", "list.jsp")//设置page节点的name属性
Element methodElement = document.createElement_x("method") //设置method节点
methodElement.setTextContent("get") //给method设置值
pageElement.appendChild(methodElement)//添加method节点到page节点内
Element displayElement = document.createElement_x("display") //设置method节点
displayElement.setTextContent("list撒旦发放")//给display设置值
pageElement.appendChild(displayElement) //添加display节点到page节点内
Element request_paramElement = document.createElement_x("request_param")
request_paramElement.setTextContent("request_param1|request_param2")
pageElement.appendChild(request_paramElement)
root.appendChild(pageElement)
pageElement = document.createElement_x("page") //设置第二个page元素到
pageElement.setAttribute("name", "content.jsp")//设置page节点的name属性
methodElement = document.createElement_x("method")
methodElement.setTextContent("post")
pageElement.appendChild(methodElement)
displayElement = document.createElement_x("display")
displayElement.setTextContent("content")
pageElement.appendChild(displayElement)
Element url_titleElement = document.createElement_x("url_title") //设置url_title节点
url_titleElement.setTextContent("title,publisher,published_calendar")//给url_title设置值
pageElement.appendChild(url_titleElement)//添加url_title节点到page节点内
root.appendChild(pageElement)//将page段加人根节点内
TransformerFactory transFactory = TransformerFactory.newInstance()//开始把Document映射到文件
Transformer transFormer = transFactory.newTransformer()
DOMSource domSource = new DOMSource(document) //设置输出结果
File file = new File("MobileNetRule.xml")//生成xml文件
if (!file.exists()) {
file.createNewFile()
}
FileOutputStream out = new FileOutputStream(file) //文件输出流
StreamResult xmlResult = new StreamResult(out) //设置输入源
transFormer.transform(domSource, xmlResult) //输出xml文件
System.out.println(file.getAbsolutePath()) //测试文件输出的路径
TransformerFactory tf = TransformerFactory.newInstance()
Transformer t = tf.newTransformer()
t.setOutputProperty("{/encoding/}","GB2312/")
ByteArrayOutputStream boc = new ByteArrayOutputStream()
t.transform(new DOMSource(document), new StreamResult(boc))
String xmlstring = boc.toString()
System.out.println(xmlstring)
} catch (Exception e) {
e.printStackTrace()
}
}
public static void main(String[] args){
Test.generate()
}
}
包括增加,删除,查询,主方法测式方法,下面有xml文档,记得导入jdom.jar步骤是:
1、建立DocumentBuilderFactory
2、建立DocumentBuilder
3、解析xml文档
4、 *** 作xml文档
5、建立TransformerFactory
6、建立Transformer
7、保存修改后的xml文档
下边是一个例子,希望可以帮到你
import java.io.File
import java.io.IOException
import java.util.HashMap
import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.parsers.ParserConfigurationException
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerConfigurationException
import javax.xml.transform.TransformerException
import javax.xml.transform.TransformerFactory
import javax.xml.transform.TransformerFactoryConfigurationError
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
import org.w3c.dom.Attr
import org.w3c.dom.DOMException
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.w3c.dom.NodeList
import org.xml.sax.SAXException
public class Company {
String fileXMLName
public Company(String fileXMLName) {
super()
this.fileXMLName = fileXMLName
}
public void showList(){
try {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance()
DocumentBuilder db=dbf.newDocumentBuilder()
Document doc=db.parse(this.fileXMLName)
NodeList n1=doc.getElementsByTagName("雇员")
for(int i=0i<n1.getLength()i++){
Element guyuan=(Element)n1.item(i)
Attr bumen=guyuan.getAttributeNode("部门")
Attr quanzhi=guyuan.getAttributeNode("全职")
System.out.print("雇员"+(i+1))
if(bumen!=null){
System.out.println("部门:"+bumen.getValue())
}
if(quanzhi!=null){
System.out.println("全职:"+quanzhi.getValue())
}
NodeList xingming=guyuan.getElementsByTagName("姓名")
System.out.println("姓名:"+xingming.item(0).getFirstChild().getNodeValue())
NodeList gudate=guyuan.getElementsByTagName("雇佣日期")
System.out.println("雇佣日期:"+gudate.item(0).getFirstChild().getNodeValue())
NodeList qingdan=guyuan.getElementsByTagName("项目清单")
NodeList xiangmu=((Element)qingdan.item(0)).getElementsByTagName("项目")
for(int j=0j<xiangmu.getLength()j++){
Element xiangmu2=(Element)xiangmu.item(j)
NodeList chanping=xiangmu2.getElementsByTagName("产品")
NodeList jiage=xiangmu2.getElementsByTagName("价格")
System.out.println("项目"+(j+1)+"产品:"+chanping.item(0).getFirstChild().getNodeValue())
System.out.println("项目"+(j+1)+"产品:"+jiage.item(0).getFirstChild().getNodeValue())
}
}
} catch (DOMException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (ParserConfigurationException 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()
}
}
public void CreateOne(String chanping,String jiage){
try {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance()
DocumentBuilder db=dbf.newDocumentBuilder()
Document doc=db.parse(this.fileXMLName)
NodeList xingming=doc.getElementsByTagName("姓名")
Element xingming1=null
for(int i=0i<xingming.getLength()i++){
xingming1=(Element)xingming.item(i)
String name=xingming1.getFirstChild().getNodeValue()
if(name.equals("王权")){
Element guyuan=(Element)xingming1.getParentNode()
NodeList qingdan=guyuan.getElementsByTagName("项目清单")
Element qingdan1=(Element)qingdan.item(0)
Element xiangmu=doc.createElement("项目")
Element chan=doc.createElement("产品")
Element jia=doc.createElement("价格")
chan.appendChild(doc.createTextNode(chanping))
jia.appendChild(doc.createTextNode(jiage))
xiangmu.appendChild(chan)
xiangmu.appendChild(jia)
qingdan1.appendChild(xiangmu)
TransformerFactory tf=TransformerFactory.newInstance()
Transformer tr=tf.newTransformer()
tr.transform(new DOMSource(doc), new StreamResult(new File("newcompany.xml")))
break
}
}
} catch (DOMException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (ParserConfigurationException 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()
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
public void deleteone(String bumen){
try {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance()
DocumentBuilder db=dbf.newDocumentBuilder()
Document doc=db.parse(this.fileXMLName)
NodeList gongsis=doc.getElementsByTagName("公司")
Element gongsi=(Element)gongsis.item(0)
NodeList guyuans=doc.getElementsByTagName("雇员")
Element guyuan=null
for(int i=0i<guyuans.getLength()i++){
guyuan=(Element)guyuans.item(i)
Attr bumens=guyuan.getAttributeNode("部门")
if((bumens!=null)&&(bumens.getValue().equals(bumen))){
gongsi.removeChild(guyuan)
}
}
TransformerFactory tf=TransformerFactory.newInstance()
Transformer tr=tf.newTransformer()
tr.transform(new DOMSource(doc), new StreamResult(new File("newcompany.xml")))
} catch (DOMException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (ParserConfigurationException 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()
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Company com=new Company("newcompany.xml")
com.showList()
// com.CreateOne("液晶显示器", "200")
// Company com1=new Company("newcompany.xml")
// com1.showList()
com.deleteone("客服部")
Company com2=new Company("newcompany.xml")
com2.showList()
}
}
xml文档格式
<?xml version="1.0" encoding="UTF-8"?><!--内部定义--><公司>
<雇员 全职="是" 部门="市场部">
<姓名>李东</姓名>
<雇佣日期>2005-01-15</雇佣日期>
<项目清单 数量="2">
<项目>
<产品>打印机</产品>
<价格>$111.00</价格>
</项目>
<项目>
<产品>笔记本</产品>
<价格>$9897.00</价格>
</项目>
</项目清单>
</雇员>
</公司>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)