如何在每个XML节点上添加线路断裂

How to add a line break to each XML node?

本文关键字:添加 线路 节点 XML      更新时间:2023-10-16

如何在每个XML子bode中添加一个线路休息,以使输出看起来格式化?

模板文件包含<Faults></Faults>标签。现在,我想在此节点内插入一个线路。

C 代码:

_di_IXMLNode nodeFault = NULL;
IXMLNode *m_pRootNode = FormMain->GetBBReportTXMLDocPtr()->DocumentElement;
...
for(; it_Events != lstEvent.end(); it_Events++){
    nodeFault = m_pRootNode->ChildNodes[EVENT_REPORT].Get(EXmlTagOrder::extoFaults)->AddChild("Fault");
    nodeFault->Attributes[WideString("Entry")] = ((*it_Events).m_sEntry).c_str();
    nodeFault->AddChild("Time")->Text = ((*it_Events).m_sTimeStamp).c_str();
    nodeFault->AddChild("Code")->Text = ((*it_Events).m_sCode).c_str();
}

,但我不会随着线路断路或格式化而获得输出。

当我在记事本中打开XML文件时,所有节点都在一行上:

<Faults><Fault Entry="0"><Time>0</Time><Code>20</Code></Fault><Fault Entry="1"><Time>2</Time><Code>10</Code></Faults>

当我在Internet Explorer中打开它时,XML文件看起来格式化:

<Faults>
  <Fault Entry="0">
    <Time>0</Time>
    <Code>20</Code>
  </Fault>
  <Fault Entry="1">
    <Time>2</Time>
    <Code>10</Code>
  </Fault>
</Faults>

如何在每个节点上添加一个线路休息,因此当我在Notepad ?

中打开时,我的最终输出文件看起来格式化。

您必须设置一些格式化选项,然后再保存到文件。

在您的特定情况下:

FormMain->GetBBReportTXMLDocPtr()->Options = 
    FormMain->GetBBReportTXMLDocPtr()->Options << doNodeAutoIndent  

查看 FormatXMLData()函数:

格式化XML字符串,使其更可读。

使用FormatXMLData将XML字符串转换为代表其结构的格式。FormatXMLData更改输入字符串(XMLData),以便每个元素节点出现在其自己的行上,适当地缩进以反映其在节点层次结构中的嵌套。