-
怎么看返回值是什么?
查看全部 -
方法的NEW? 和返回到底是什么東西
查看全部 -
創(chuàng)建一個(gè)類的對(duì)象 調(diào)用解析方法解析XML文件 調(diào)用創(chuàng)建方法創(chuàng)建XML文件
查看全部 -
生成xml的四種方式的性能對(duì)比:SAX > DOM4J > JDOM > DOM
在一個(gè)課程測(cè)試用例中四種方式的用時(shí)(Ms):
DOM:418
SAX:3
JDOM:158
DOM4J:59
DOM/SAX官方自帶:
DOM生成DOM樹加載到內(nèi)存,方便修改,性能慢。
SAX性能最高,但是不能返回修改便簽中的內(nèi)容
DOM4J相對(duì)綜合最好,應(yīng)用廣泛查看全部 -
DOM與SAX對(duì)比
DOM適合經(jīng)常修改,SAX不適合修改。
查看全部 -
四種生成xml方式對(duì)比
查看全部 -
JDOM方式生成XML文件設(shè)置文件格式
1,創(chuàng)建Format對(duì)象
????Format format = Format.getCompactFormat();
2,設(shè)置換行以及編碼
????format.setIndent("");//若括號(hào)中為"\n"則會(huì)換兩行
????format.setEncoding("GBK");
3將Format對(duì)象作為參數(shù)傳進(jìn)輸出流創(chuàng)建方法中
????XMLOutputter outputer = new XMLOutputter(format);查看全部 -
xml對(duì)CDATA進(jìn)行轉(zhuǎn)義
Element?title?=?new?Element("title"); CDATA?cdata?=?new?CDATA("上海移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)促進(jìn)中心正式揭牌"); title.addContent(cdata);
查看全部 -
JDOM生成XML根節(jié)點(diǎn)
private?void?createXML(){ ?//1.生成一個(gè)根節(jié)點(diǎn) ?Element?rss?=?new?Element("rss"); ?//2.為節(jié)點(diǎn)添加屬性 ?rss.setAttribute("version","2.0"); ?//3.生成一個(gè)document對(duì)象 ?Document?document?=?new?Document(rss); ?//4.創(chuàng)建XMLOutputter的對(duì)象 ?XMLOutputter?outputer?=?new?XMLOutputter(); ?//5.利用outputer將document對(duì)象轉(zhuǎn)換成xml文檔 ?try?{ ??outputer.output(document,?new?FileOutputStream(new?File("rssnews2.xml"))); ?}?catch?(FileNotFoundException?e)?{ ??e.printStackTrace(); ?}?catch?(IOException?e)?{ ??e.printStackTrace(); ?} }
查看全部 -
//設(shè)置是否轉(zhuǎn)義,默認(rèn)是true,表示轉(zhuǎn)義
writer.setEscapeText(false);查看全部 -
private void createXML() {
?//1.創(chuàng)建document對(duì)象,代表整個(gè)xml文檔
?Document document = DocumentHelper.createDocument();
?//2.創(chuàng)建根節(jié)點(diǎn)
?Element rss = document.addElement("rss");
?//3.向rss節(jié)點(diǎn)中添加version屬性
?rss.addAttribute("version", "2.0");
?//4.生成子節(jié)點(diǎn)及節(jié)點(diǎn)內(nèi)容
?Element channel = rss.addElement("channel");
?Element title = channel.addElement("title");
?title.setText("國(guó)內(nèi)最新新聞");
?//5.設(shè)置生成xml的格式
?OutputFormat format = OutputFormat.createPrettyPrint();
?format.setEncoding("GBK");
?//6.生成xml文件
?File file = new File("rssnews.xml");
?XMLWriter writer;
?try {
??writer = new XMLWriter(new FileOutputStream(file),format);
??writer.write(document);
??writer.close();
?} catch (IOException e) {
??e.printStackTrace();
?}
}查看全部 -
使用DOM4J創(chuàng)建XML文件中rss根節(jié)點(diǎn)步驟
1,創(chuàng)建Document對(duì)象,代表著整個(gè)XML文檔
????Document do = DocumentHelper.createDocument();
2,創(chuàng)建根節(jié)點(diǎn)rss
????Element rss = do.addElement("rss");
3,向rss根節(jié)點(diǎn)中添加version屬性
????rss.addAttribute("version","2.0");
4,創(chuàng)建XML文檔的輸出流
????File file = new File("xxx");
????XMLWriter writer = new XMLWriter(new FileOutputStream(file));
5,將程序所寫的XML文檔內(nèi)容與輸出流聯(lián)系起來
????writer.write(do);
6,關(guān)閉資源
????writer.close();查看全部 -
RSS通常是用來描述和同步網(wǎng)站內(nèi)容的一種格式,本質(zhì)是xml
xml通常的用途就是可以共享數(shù)據(jù)查看全部 -
生成帶文本的子節(jié)點(diǎn)
// 7.利用handler對(duì)象進(jìn)行xml文件內(nèi)容的編寫O
// 打開document
handler.startDocument();
AttributesImpl attr = new AttributesImpl();
handler.startElement("", "", "bookstore", attr);
for (Book book : bookList) {
????attr.clear();
????attr.addAttribute("", "", "id", "", book.getId());
????handler.startElement("", "", "book", attr);
????// 創(chuàng)建name節(jié)點(diǎn)
????if (book.getName() != null && !book.getName().trim().equals("")) {
????????attr.clear();
????????handler.startElement("", "", "name", attr);
????????handler.characters(book.getName().toCharArray(), 0, book.getName().length());
????????handler.endElement("", "", "name");
????}
????//類似創(chuàng)建name節(jié)點(diǎn)(price、language...等等)
????handler.endElement("", "", "book");
}
handler.endElement("", "", "bookstore");
// 關(guān)閉document
handler.endDocument();
Ps1:setResult()必須在startDocument()之前調(diào)用。
Ps2:void characters(char[] ch,int start,int length)throws SAXException。查看全部 -
####一、主要用到的類:
1. SAXTransformerFactory:用于創(chuàng)建TransformerHandler實(shí)例
2. TransformerHandler:用于生成解析文檔
3. Transformer:用于格式化輸出的結(jié)果
4. Result:用于保存TransformerHandler產(chǎn)生的結(jié)果
####二、主要的流程
// 創(chuàng)建一個(gè)工廠類實(shí)例,用于創(chuàng)建Handler實(shí)例
SAXTransformerFactory factory = (SAXTransformerFactory)SAXTransformer.newInstance();
// 從工廠實(shí)例中獲取Handler實(shí)例
TransformerHandler handler = factory.newTransformerHandler();
// 創(chuàng)建一個(gè)格式化傳輸器
Transformer transformer = handler.getTransformer();
// 設(shè)置輸出屬性:OutputKeys.IDENNT="yes"表示輸出結(jié)果帶換行
former.setOutputProperty(OutputKeys.IDENNT,"yes");
// 創(chuàng)建轉(zhuǎn)換結(jié)果持有器,用于保存Handler輸出的結(jié)果
Result result = new StreamResult(new File("demo.txt"));
// 建立handler與result之間的關(guān)聯(lián),確保handler處理的結(jié)果能正確的保存到result中
handler.setResult(result);
// handler處理文檔的細(xì)節(jié)(在下一個(gè)筆記里面)查看全部
舉報(bào)