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