2010-11-04 96 views
0

將std :: string類型的XML字符串轉換爲內存中的XML對象的最有效方法是什麼?對象結構不重要,我之後是我是否需要通過字符來檢查字符串char並挑選出所有的部分或者是否有更簡單的方法?std :: string xml string to object

回答

2

最簡單的方法可能是使用庫來做到這一點。

如果你想自己做,你需要解析包含XML代碼的字符串。有很多方法可以做到這一點;最簡單的可能是一個遞歸下降解析器。

+0

「最有效」仍然是使用其他人已經開發和調試的庫。 – 2010-11-04 12:54:29

+1

@peoro - *你需要解析包含XML代碼的字符串* - 真的嗎?許多XML庫將採用一個字符串並將其轉換爲對象模型格式。 MSXML將做到這一點,但它是一個使用藥片,因爲它使用COM編程隱喻。你的基本觀點是正確的,但是我確信,推薦使用哪一個也是有用的。 – 2010-11-04 13:21:21

+1

「如果你想自己做那個」,我的意思是「如果你不想在任何XML庫上轉發」...... – peoro 2010-11-04 13:24:31

0

您可以使用MSXML爲此,將採取串併產生DOM(文檔對象模型)表示。文檔可以,但這不是最簡單的庫。當然只有當然。

優點 - 可靠,應用廣泛。缺點 - 你必須在一定程度上學習COM編程模型。不是最直觀的使用。

更簡單的選項是xerces。示例文件解析代碼here,還有其他示例。我在不同的工作中使用了這個和MSXML。

+0

我不想使用COM ... – 2010-11-04 13:24:52

+1

@Tony - 我不怪你。我相信你不需要使用Xerces或者其他很多其他的Xerces。 – 2010-11-04 13:26:56

0

使用libxml2。不是一個非常複雜的庫,並且易於使用。可移植性,用C語言編寫,但與其他可用語言綁定,以及大量使用和學習的示例。