如果我要使用XML文件來存儲一些信息,我是否需要一個讀取/寫入數據的XML解析器?我可以使用字符串操作函數嗎?爲什麼不呢?使用XML文件存儲數據
5
A
回答
5
你可以想象使用字符串操作函數,因爲這是XML庫最終使用的。 XML文檔只是特殊格式的長字符串。但是,除非您對XML有所瞭解(以及什麼是和不是有效的XML),否則現在使用XML解析器/序列化器將爲您節省很多麻煩。 XML(名稱空間,轉義序列等)有細微差別,這些問題會導致本地代碼中的問題不知如何正確處理它們。當你處理完所有特殊情況之後,無論如何你都會有效地寫出一個半分析的XML解析器。
4
不要......我重複......不要手動解析或構建XML。
在我的工作中,我們在不同的供應商之間實現了很多接口。我無法告訴你我們有多少次在基於xml的界面上工作,並且遇到了某種轉義編碼/解碼問題。我連接到基於xml的服務時將運行的第一個測試之一是在輸入中添加非法的xml字符。
你叫什麼名字?:鮑勃<> &「
錯誤解析XML文檔
我們遇到了很多次了,如果我們的任何工程師檢查有相近之處:!
xml = "<rootnode>" xml += "<leafnode>" + someValue + "</leafnode>" xml += "</rootnode>"
我們會認真考慮他們的對接可變薪酬只要「someValue中」包含非法字符,你pooched那麼你的代碼開始看起來像這樣:。
xml = "<rootnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "</rootnode>"
然後東西還在吹起來,這樣的天才工程師嘗試:
xml = "<rootnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "<leafnode>" + XmlEscape(someValue) + "</leafnode>" xml += "</rootnode>" xml = XmlEscape(xml)
注:這個過程實際上發生在我身上兩次在接口上工作時。
您知道它之前,通過線路的流結束看起來像
&lt;rootnode>HELP<rootnode> &lt;rootnode>ME&lt;rootnode&gt;
摘要:
請使用圖書館。 k thx再見。
0
我們可以用tinyXml2,使我們的工作更容易,只包括頭和tinyxml2的CPP文件,你幾乎完成分析和編寫。請找到文檔和手冊在
相關問題
- 1. 在數據庫中存儲XML文件
- 2. Web場+ XML文件的數據存儲
- 3. 存儲轉化成XML使用XML文件中的XML文件
- 4. 如何使用C#在SQL數據庫中存儲XML文件?
- 5. 存儲XML數據以用於插件
- 6. 存儲XML數據
- 7. 讀取XML文件並將數據存儲到mysql數據庫
- 8. 存儲XML數據集2000
- 9. 初學者 - 通過XML或文本文件存儲數據
- 10. 將數據存儲在文本文件或xml中
- 11. 如何從存儲插件的xml文件中讀取數據?
- 12. 使用python將數據庫數據存儲到json文件中
- 13. 用於存儲數據的JSON文件
- 14. 用python存儲csv頭文件數據
- 15. 如何使用linq to sql在xml列中存儲xml文件?
- 16. 將XML用於數據存儲
- 17. GWT應用程序的數據存儲位置 - GAE數據存儲區或XML文件
- 18. 最適合存儲XML文件的NoSql數據庫
- 19. 在SQLite數據庫中存儲XML/HTML文件 - 可能嗎?
- 20. 加載存儲在xml文件中的外部數據
- 21. 如何存儲從XML文件重複數據在C#
- 22. 從存儲在xml中的數據創建文件
- 23. 在成千上萬的小文件中存儲XML數據
- 24. 存儲庫模式 - 切換數據庫並切換XML文件
- 25. 解析XML文件並將其存儲到數據庫中
- 26. 存儲excel插件使用數據
- 27. 如何使用c#在XML文件中存儲來自txt文件的數據?使用
- 28. 使用xml緩存數據
- 29. 使用python將文本文件存儲到SQLite3數據庫
- 30. 使用Python將串行數據存儲到文本文件中
是什麼庫用於XML?有沒有建立或標準的圖書館? – 2012-02-14 08:14:16
在Java中,它們是庫,在Ruby中是寶石。假設Java,繼續到Apache網站並查看他們的工具。 – Thufir 2012-03-26 12:14:34