2011-08-01 48 views
0

我的問題是使用XmlWriter在C++中輸出列表。我需要一個可以包含在我的XML文件中的列表。我的計劃代碼 - 類應實行生成列表元素,但我不知道爲什麼:與xmlwriter組合的C++列表

writer->WriteStartElement("Parameters"); 

    writer->WriteStartElement("ParamterList"); 
       // A list including approximately 100 entries 
       writer->WriteAttributeString("ID", "001"); 
       writer->WriteAttributeString("Name", "Dummy1"); 
       writer->WriteAttributeString("BitOffset", "0"); 
    writer->WriteEndElement(); 

writer->WriteEndElement(); 

怎麼可能給插入一個列表我的應用程序。我的輸出應該是這樣的:

<root Name="database" Purpose="test" Project="test"> 
<Description Version="1.1B" Author="name">test</Description> 
<ContainerList> 
    <Container Name="Dummy1" BitOffset="0" /> 
</ContainerList> 
<ParameterList> 
    <Paramter ID="001" Name="Dummy1" BitOffset="0" /> 
    <Paramter ID="002" Name="Dummy2" BitOffset="1" /> 
    <Paramter ID="003" Name="Dummy3" BitOffset="0" /> 
    <Paramter ID="004" Name="Dummy4" BitOffset="0" /> 
    ...... 
</ParameterList> 

由於答案1所示的代碼,我現在知道如何使用的XmlWriter列表,但此刻我真的不知道該怎麼連接並寫入此代碼的類?

回答

1

每個Paramter(你拼寫正確嗎?)元素是一個XML元素。因此,它需要一個WriteStartElement呼叫和一個WriteEndElement。在這些調用中,您可以添加您的ID和其他屬性。所以你的清單應該是這樣的:

for (auto listElement :list) //Using C++0x syntax 
{ 
    writer->WriteStartElement("Paramter"); 
    writer->WriteAttributeString("ID", listElement.id()); 
    writer->WriteAttributeString("Name", listElement.name()); 
    writer->WriteAttributeString("BitOffset", listElement.bitOffset()); 
    writer->WriteEndElement(); 
} 
+1

@Peter:你是什麼意思「如何連接和寫一個類到這個(你的)代碼?」你問如何在C++中編寫XmlWriter?你指的是什麼課程? –

+0

謝謝,萬事如意!我認爲是錯誤的方式;) – Peter

+0

是否有可能在沒有託管代碼(cli)的情況下使用xmlwriter? – Peter