Список C ++ в сочетании с xmlwriter - PullRequest
0 голосов
/ 01 августа 2011

Моя проблема заключается в выводе списка в C ++ с использованием XmlWriter.Мне нужен список, который может быть включен в мой файл XML.Мой запланированный код - класс должен быть реализован для генерации элементов списка, но я не знаю почему:

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 Ответ

1 голос
/ 01 августа 2011

Каждый Paramter (вы правильно написали?) Элемент является элементом XML.Следовательно, ему нужен вызов WriteStartElement и WriteEndElement.В рамках этого вызова вы добавляете свои идентификаторы и другие атрибуты.Таким образом, ваш список будет выглядеть примерно так:

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();
}
...