所以我知道有上Boost.Qi XML parsing官方教程,但我挺鋼不明白如何與它這樣的XML解析:如何用boost.Qi解析這樣的XML並調用名爲標籤的函數?
<host url="http://www.site.com"/>
<run app="myApp" version=443 url="/folderName/innerFolder/myApp.exe"/>
<folder name="folderName" version=443>
<folder name="innerFolder" version=443>
<file name="innerFile.txt" version=443 url="/folderName/innerFolder/innerFile.txt">
<file name="myApp" version=443 url="/folderName/innerFolder/myApp.exe"/>
</folder>
<file name="fileName" url="/folderName/fileName.exe" version=442/>
</folder>
這看起來很簡單,但我鋼不明白如何解析我的XML .. (我需要的是簡單的 - 調用一個函數(稱爲具有相同的名稱,主機()),我需要發送到功能對象,如像文件)標籤(:
typedef boost::variant<int, std::string, void*> variant_type;
std::map<std::string, variant_type> tagObj;
tagObj["url"] = 10;
所以 - 如何使boost.Qi解析我的XML並在解析時調用我的函數?
我不確定boost :: spirit是否適合您的任務。當然,這是可能的,它們提供了一個解析XML小部分的簡單例子。我認爲當沒有可用的目標語言解析器時,應該使用Spirit,並使用一個快速,完整,經過充分測試的XML優化解析器。 [RapidXML](http://rapidxml.sourceforge.net/)很好,例如與Boost很好地集成。 – tux21b 2011-03-12 15:40:45