我在嵌入式項目中使用了非常小的XML解析器。它需要編譯到10-15k,不需要驗證,並且需要簡單和便攜。嵌入式C項目是否有一個很好的小XML解析器?
回答
您可以隨時推出自己的實施。幾年前我做了這個,現在剛剛在代碼mercurial.intuxication.org/hg/cstuff處添加了一些接口文檔。
請注意,解析器從未在生產環境中使用過,甚至沒有經過過多的基本測試;評論也是不存在的,所以如果你需要修改代碼,請盡情發揮代碼的作用;)
謝謝克里斯託弗。這正是我最後所做的一切,我自己實施。我在你的帖子之前實際執行了它,但是無論如何感謝 - 我會看看你的實現,並與我自己的實現進行比較。 – Joe 2010-09-20 17:04:25
@Christoph,這看起來正是我在找的東西 - 感謝您發佈! – mikepurvis 2012-09-15 13:48:05
我能夠爲C調整以下XML解析器庫的編譯標記,並且減少了超過50%的大小在我的Ubuntu機器上。迷你XML是唯一一個接近你的要求是什麼:
這裏有一個很好的討論:
我在搜索一個最近,我發現了SimpleXML(http://simplexml.sourceforge.net/)和稍大sxmlc(http://sourceforge.net/projects/sxmlc/)
我發現SimpleXML的更有趣,因爲它更簡單,我沒有嘗試,但看起來它符合我心目中,一單個文件(以及.h和.c)庫不支持異國情調的XML功能。
簡單的XML解析器是XML子集的一個小解析器(除了實體和名稱空間之外的所有東西)。它使用簡單的「每個標籤一個處理程序」界面,適用於資源有限的設備。
我開發了sxmlc(「C中的簡單XML」),就像這樣:儘可能少的文件。它只有一個文件,如果您需要通過文檔進行類似XPath的搜索,則可以添加一個可選的「搜索」文件。
它處理DOM風格加載(內存中的整個文檔樹)或SAX風格的加載(每當讀取節點的屬性或在節點上讀取文本時調用回調函數)。如果記憶是一個問題,你會對SAX感興趣。
有些人還對它可以解析文件或內存緩衝區這一事實感興趣(當您將XML作爲Web回覆時很有用)。
它處理自版本4到#define
以來的Unicode文件,因此如果您不需要Unicode,只需不定義SXMLC_UNICODE
,二進制文件中不會有任何權重增加。
我也不得不說它保留評論當寫回XML到磁盤!當人們花時間在XML文件中解釋配置語法(「put'true'以啓用特殊壓縮...」)時,我總是感到抱歉,這些文件在應用程序保存後會被擦除。
它在Linux和Windows下編譯。我很高興地將它嵌入到路由器中,我得到了很好的反饋。因爲我想盡可能保持簡單,所以我可能不會添加新的功能,而是改進現有的功能(並糾正錯誤,當然!:))。除非有錯誤報告,否則我的研發活動並不十分活躍。
嘗試yxml - 這是一個非常小而且快速的非驗證解析器。
- 1. 是否有一個很好的嵌入式代碼小部件
- 2. 是否有一個很好的Windows C++ XML DOM教程?
- 3. XML解析器,一個項目
- 4. 解析和嵌入式XML
- 5. 是否有Microsoft Word的嵌入式可視化(PHP)解析器?
- 6. 嵌入式錯誤:分析c#項目
- 7. 有沒有一個很好的嵌入式教程?
- 8. PHP HTML解析器(是否沒有好的HTML解析器)
- 9. 在java中是否有一個好的替代URL解析器
- 10. XML解析器目標-C
- 11. JSON解析是有一個項目
- 12. 個人項目「RSS FEED」XML解析器
- 13. 是否有一個很好的解析RFC2822郵件負載的Haskell庫?
- 14. 用Go解析xml,有多個項目
- 15. Drawing2D.Matrix是否有很好的解釋?
- 16. 一個簡單的C XML解析器
- 17. 什麼是C++項目的良好交互式語言解析器?
- 18. 什麼是最好的XML解析器
- 19. 解析XML與嵌入式HTML
- 20. 集成了XML解析器的嵌入式Web服務器
- 21. 是否有一個很好的模板引擎C++
- 22. 使用XPath解析另一個xml中嵌入的xml Spring
- 23. 解析PHP嵌入到XML
- 24. 嵌入式C++解釋器?
- 25. 是否有一個很好的「免費」圖形web.config編輯器?
- 26. mercurial是否有一個很好的(gitorious-like)服務器?
- 27. 是否有一個很好的PHP CRUD代碼生成器?
- 28. 這是一個很好的嵌入式C應用程序的錯誤報告解決方案嗎?
- 29. 解析一個複雜嵌套的XML
- 30. 如何解析HTML項目在XML文件中嵌入項目進行Scrapy
類似於[ C嵌入式系統的XML庫 ](http://stackoverflow.com/questions/1131701/c-xml-library-for-embedded-systems),雖然我沒有看到任何好的答案。 – 2010-09-17 22:27:23
XML是絕對需求嗎? 15k非常緊密,因爲您不需要手動滾動以滿足您的需求,但是如果您找不到那種非常小的現成JSON解析器,我會感到驚訝。 – llasram 2010-09-18 15:44:47
嗨llasram,謝謝你的評論。是的,XML是一項要求。我最終解決了自己的問題:手動滾動符合我要求的XML解析器。由此產生的代碼只有幾K ...但是當我仔細研究它們時,我的XML解析要求變得相當簡單。 – Joe 2010-09-20 17:06:18