-
7、利用handler對象進(jìn)行xml文件內(nèi)容的編寫
//打開document
handler.startDocument();
AttributesImpl attr = new AttributesImpl();
handler.startElement("", "", "bookstore", attr);
attr.clear;
attr.addAttribute("","","id","","1");
handler.startElement("","","book","attr");
handler.endElement("", "", "bookstore");
//關(guān)閉document
handler.endDocument();
查看全部 -
2-1 創(chuàng)建根節(jié)點和 book 節(jié)點屬性
1、新建DOM樹newDocument
2、創(chuàng)建根節(jié)點createElement
3、把根節(jié)點添加到DOM樹中appendChild
4、創(chuàng)建子節(jié)點
5、把子節(jié)點添加到根節(jié)點中
6、添加屬性setAttribute
注:
1、實際代碼編寫順序,先全部創(chuàng)建完,再一起添加
2、屬性不需要創(chuàng)建,直接添加
查看全部 -
四種生成xml方式對比:
DOM:基于tree
SAX:基于事件,不可向已生成xml文件添加結(jié)點
JDOM、DOM4J:基于底層API
查看全部 -
JDOM設(shè)置XML格式:
Format format=Format.getCompactFormat();//創(chuàng)建Format對象,設(shè)置生成xml文檔格式
format.setIndent(String index)l//設(shè)置換行
faomat.setEncoding(String encoding);//設(shè)置文檔編碼格式
查看全部 -
生成子節(jié)點:Element channel=new Element("channel");
rss.addContent(channel);//添加channel結(jié)點到根節(jié)點
Element title=new Element("title");
title.setText("國內(nèi)最新新聞");//設(shè)置結(jié)點文本內(nèi)容
channel.addContent(title);//添加title結(jié)點到channel結(jié)點
查看全部 -
//生成根節(jié)點
Element rss=new Element("rss");
//為根節(jié)點屬性,參數(shù)設(shè)置屬性名和屬性值
rss.setAttribute("version","2.0");
//生成一個document對象,含有一個根節(jié)點對象
Document document=new Document(rss);
//創(chuàng)建XMLOutputter對象
XMLOutputter outputer=new XMLOutputter();
//利用output將document對象轉(zhuǎn)換為xml文檔
outputer.output(document, new FileOutputStream(new File("rssnews.xml")));
查看全部 -
定義是否需要將特殊字符轉(zhuǎn)義:writer.setEscapeText(false);//默認(rèn)為true
查看全部 -
設(shè)置生成xml的格式:OutputFormat format=OutputFormat.createPrettyPrint();
設(shè)置編碼:format.setEncoding(String encoding);
可在生成xml文件時加入格式:XMLWriter writer=new XMLWriter(new FileOutputStream(new File(String fileName)),format);
查看全部 -
生成根節(jié)點和屬性:
創(chuàng)建document對象,代表整個xml文檔:Document document=DocumentHelper.createDocument();
創(chuàng)建根節(jié)點:Element rss=document.addElement("rss");
添加屬性:rss.addAttribute(String arg0,String arg1);
生成子節(jié)點和內(nèi)容:Element channel=rss.addElement("channel");
Element title=channel.addElement("title");
設(shè)置文字內(nèi)容:title.setText(String arg0);
生成xml文件:XMLWriter writer=new XMLWriter(new FileOutputStream(new File("rssnews.xml")));
writer.write(docment);
writer.close();
查看全部 -
創(chuàng)建AttributesImpl對象用于創(chuàng)建屬性:AttributeImpl attr=new AttributeImpl();
添加屬性:attr.addAttribute(String uri,String localName,String qName,String type,String value);//名稱空間 URI,本地名稱,限定(加前綴的)名稱,字符串形式的屬性類型,屬性值
清空已有屬性:attr.clear();
查看全部 -
生成子節(jié)點及節(jié)點屬性:
利用TransformerHandler對象進(jìn)行XML文件進(jìn)行設(shè)置:
TransformerHandler handler=SAXTransformerFactor.newInstance().newTransformerHndler();
打開document:handler.startDocument();
對Xml文件的格式設(shè)置需放在最開始。
設(shè)置結(jié)點及其屬性:handler.startElement(String uri,String localName,String qName,Attributes atts);//
uri-名稱空間 URI,如果元素沒有名稱空間 URI,或者未執(zhí)行名稱空間處理,則為空字符串
localName
- 本地名稱(不帶前綴),如果未執(zhí)行名稱空間處理,則為空字符串qName
- 限定名(帶有前綴),如果限定名不可用,則為空字符串atts
- 連接到元素上的屬性。如果沒有屬性,則它將是空 Attributes 對象。在 startElement 返回后,此對象的值是未定義的?設(shè)置屬性的文本內(nèi)容:handler.characters(char[] ch,int start,int length);//ch來自 XML 文檔的字符,start數(shù)組中的開始位置,length從數(shù)組中讀取的字符的個數(shù)
關(guān)閉結(jié)點:handler.endElement(String uri,String localName,String qName);
關(guān)閉document:handler.endDocument();
查看全部 -
創(chuàng)建一個SAXTransformerFactory對象:SAXTransformerFactory tff=(SAXTransformerFactory)SAXTransformerFactory.newInstance();
創(chuàng)建TransformerHandler對象:TransformerHandler handler=tff.newTransformerHandler();
創(chuàng)建Transformer對象:Transformer tf=handler.getTransformer();
設(shè)置Transformer對象生成XML文件格式:tr.setOutputProperty(String name,String value);
將XML文件與handler對象關(guān)聯(lián):handler.setResult(new StreamResult(new FileOutputStream(File file)));
查看全部 -
生成節(jié)點間的文本:Element name=document.creatElement("name");
name.setTextContent("小王子");
可設(shè)置xml文件是否有DTD、Schema約束:document.setXnlStandalone(true);//不含DTD、Schema約束
查看全部 -
創(chuàng)建Transformer對象:Transformer tf=TransformerFactory.newInstance().newTransformer();
設(shè)置輸出屬性,指定了輸出屬性名稱的非 null String,它可以是名稱空間限定的:tf.setOutputProperty(String name,String value);
通過transform方法將Document對象轉(zhuǎn)化為Xml文件:tf.transform(new DOMSourse(document),new StreamResult(new File(String fileName)));
查看全部 -
創(chuàng)建DocumentBuilder對象:DocumentBuilder db=new DocumentBuilderFactory.newInstance().newDocumentBuilder();
創(chuàng)建Document對象:Document document=db.newDocument();
創(chuàng)建節(jié)點:Element element=document.createElement(String tagName);
添加結(jié)點:document.appendChild(Node newNode);
添加屬性:element.setAttribute(String name,String value);
查看全部
舉報