0

我的问题是使用 XmlWriter 在 C++ 中输出一个列表。我需要一个可以包含在我的 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 一起使用,但目前我真的不知道如何为这段代码连接和编写一个类?

4

1 回答 1

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();
}
于 2011-08-01T08:47:02.933 回答