1、java程式碼:
主要採用dom進行操作
package test; import java.io.IOException; 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.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Text; import org.xml.sax.SAXException; public class XmlOprate { Document doc; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; NodeList imags; String path; public NodeList getImags() { return imags; } public void setImags(NodeList imags) { this.imags = imags; } /** * 构造方法 * @param path:xml文件的路径 * @param nodes:要解析的xml节点名称 */ public XmlOprate(String path) { super(); this.path = path; System.out.println(System.getProperty("user.dir")); } /** * 解析XML * @param path */ public void readXml(){ try { builder = factory.newDocumentBuilder(); Document doc=builder.parse(path); doc.normalize(); NodeList imags =doc.getElementsByTagName("imags"); this.setImags(imags); for (int i=0;i<imags.getLength();i++){ Element link=(Element) imags.item(i); System.out.print("title: "); System.out.println(link.getElementsByTagName("title").item(0).getFirstChild().getNodeValue()); System.out.print("URL: "); System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue()); System.out.print("imgsrc: "); System.out.println(link.getElementsByTagName("imgsrc").item(0).getFirstChild().getNodeValue()); System.out.println(); } }catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * addCode * @param path */ public void addXmlCode(String imgsrc,String title,String url){ try { builder = factory.newDocumentBuilder(); Document doc=builder.parse(path); doc.normalize(); Text textseg; Element imag=doc.createElement("imags"); Element linkimgsrc=doc.createElement("imgsrc"); textseg=doc.createTextNode(imgsrc); linkimgsrc.appendChild(textseg); imag.appendChild(linkimgsrc); Element linktitle=doc.createElement("title"); textseg=doc.createTextNode(title); linktitle.appendChild(textseg); imag.appendChild(linktitle); Element linkurl=doc.createElement("url"); textseg=doc.createTextNode(url); linkurl.appendChild(textseg); imag.appendChild(linkurl); doc.getDocumentElement().appendChild(imag); TransformerFactory tFactory =TransformerFactory.newInstance(); Transformer transformer; transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new java.io.File(path)); transformer.transform(source, result); }catch(Exception e){ } } /** * delete xml code * @param path */ public void delXmlCode(){ try { builder = factory.newDocumentBuilder(); doc=builder.parse(path); doc.normalize(); NodeList imags =doc.getElementsByTagName("imags"); Element elink=(Element) imags.item(0); elink.removeChild(elink.getElementsByTagName("imgsrc").item(0)); elink.removeChild(elink.getElementsByTagName("title").item(0)); elink.removeChild(elink.getElementsByTagName("url").item(0)); doc.getFirstChild().removeChild(elink); TransformerFactory tFactory =TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new java.io.File(path)); transformer.transform(source, result); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } }
2、xml部分
<?xml version="1.0" encoding="UTF-8" ?> <root> <imags> <img src alt="java對XML檔案的解析、節點的增加、刪除操作總結" >images/ad-01.jpg</imgsrc> <title>胡志明市</title> <url>http://torchrelay.beijing2008.cn/cn/journey/hochiminhcity/</url> </imags> <imags> <img src alt="java對XML檔案的解析、節點的增加、刪除操作總結" >images/ad-02.jpg</imgsrc> <title>香港2</title> <url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> </imags> </root>
3、總結:
看對xml操作的三種方法(讀、寫、刪),他們的初始化語句都相同:
builder = factory.newDocumentBuilder(); Document doc=builder.parse(path); doc.normalize();
開始我打算把這部分相同的部分拿出來寫在構造方法中,但是在測試中發現,這樣總是會報空指針的錯誤(搞了我好久);
而只是把
builder = factory.newDocumentBuilder();
放到builder的初始化語句中的時候,讀沒問題,但是當寫或刪的時候也會報錯;
所以就寫成現在這樣了,感覺有點亂亂的,但也沒想到什麼好的方法,就先貼到這裡了,以後可能會用得著
更多java對XML檔案的解析、節點的增加、刪除操作總結相關文章請關注PHP中文網!

本文解釋瞭如何使用RSS feed進行有效的新聞匯總和內容策劃。 它詳細介紹了使用RSS讀取器(例如Feedly和Inoreader),組織供稿以及為目標內容的利用功能的訂閱供稿。 利益

手機XML轉PDF的速度取決於以下因素:XML結構的複雜性手機硬件配置轉換方法(庫、算法)代碼質量優化手段(選擇高效庫、優化算法、緩存數據、利用多線程)總體而言,沒有絕對的答案,需要根據具體情況進行優化。

本文解釋了用於Web內容管理的原子出版協議(ATOMPUB)。 它使用HTTP方法(獲取,發布,PUT,刪除)詳細介紹了用於內容創建,檢索,更新和刪除的原子格式。 本文還討論了Atompub

本文詳細介紹了使用RSS提要實施內容聯合的內容。 它涵蓋創建RSS提要,識別目標網站,提交提要以及監視效率。 諸如有限控制和豐富媒體支持之類的挑戰也是鐵餅

本文詳細介紹了針對未經授權訪問的RSS供給。 它檢查了各種方法,包括HTTP身份驗證,具有速率限制的API密鑰,HTTPS和內容混淆(灰心)。 最佳實踐涉及IP限制,轉換

本文探討了集成XML和語義網絡技術。 核心問題是將XML的結構化數據映射到RDF三元組,以進行語義互操作性。 最佳實踐涉及本體定義,戰略映射方法,仔細的ATT

不可能直接在手機上用單一應用完成 XML 到 PDF 的轉換。需要使用雲端服務,通過兩步走的方式實現:1. 在雲端轉換 XML 為 PDF,2. 在手機端訪問或下載轉換後的 PDF 文件。

本文使用XML詳細介紹了數據互操作性,重點是醫療保健和金融。 它涵蓋了模式定義,XML文檔創建,數據轉換,解析和交換機制。鑰匙XML標準(HL7,DICOM,FinML,ISO 20022)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),