如何为每个 XML 节点添加换行符?
How to add a line break to each XML node?
如何为每个 XML 子节点添加换行符以便输出看起来格式化?
模板文件包含 <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>
XML 文件在 Internet Explorer 中打开时看起来是格式化的:
<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()
函数:
Formats a string of XML so that it is more readable.
Use FormatXMLData
to convert a string of XML into a format that represents its structure. FormatXMLData
changes the input string (XMLData
) so that each element node appears on its own line, indented appropriately to reflect its nesting in the node hierarchy.
如何为每个 XML 子节点添加换行符以便输出看起来格式化?
模板文件包含 <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>
XML 文件在 Internet Explorer 中打开时看起来是格式化的:
<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()
函数:
Formats a string of XML so that it is more readable.
Use
FormatXMLData
to convert a string of XML into a format that represents its structure.FormatXMLData
changes the input string (XMLData
) so that each element node appears on its own line, indented appropriately to reflect its nesting in the node hierarchy.