我有代码,我在其中将新节点添加到 xml 文件中,它运行良好,但是有一个问题,当我保存添加的更改时,xml 文件的原始结构发生了更改。
最初,该文件对每个节点都有一个完整的行或行,如下所示:
<DATA>
<ROW><mk v = "2801"/><gd v = "170300"/><wn v = "00Y6354"/><bn v = ""/></ROW>
<ROW><mk v = "2801"/><gd v = "170301"/><wn v = "00Y6355"/><bn v = ""/></ROW>
<ROW><mk v = "2801"/><gd v = "170302"/><wn v = "00Y6356"/><bn v = ""/></ROW>
</DATA>
但添加新节点并保存更改后,结构如下所示:
<DATA>
<ROW>
<mk v = "2801"/>
<gd v = "170300"/>
<wn v = "00Y6354"/>
<bn v = ""/>
</ROW>
<ROW>
<mk v = "2801"/>
<gd v = "170301"/>
<wn v = "00Y6355"/>
<bn v = ""/>
</ROW>
<ROW>
<mk v = "2801"/>
<gd v = "170302"/>
<wn v = "00Y6356"/>
<bn v = ""/>
</ROW>
<ROW>
<mk v = "2341"/>
<gd v = "170342"/>
<wn v = "00Y9872"/>
<bn v = "new node"/>
</ROW>
</DATA>
我试图找到一些带有 FINAL OUTPUT 的示例,例如第一个结构,但什么也没有。因此,可以在不更改原始结构的情况下保存更改,请告诉我!
我的代码是这样的:
public void CreateXML(string[] ipRow, string ipFile)
{
XmlDocument doc = new XmlDocument();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(ipFile);
for (int j = 0; j < ipRow.Length; j++)
{
doc.LoadXml(ipRow[j]);
XmlNode newNode = doc.DocumentElement;
XmlNode copiedNode = xmlDoc.ImportNode(newNode, true);
xmlDoc.DocumentElement.LastChild.AppendChild(copiedNode);
}
xmlDoc.Save(ipFile);
}
我只是想应用某种格式,或者至少指示程序尊重文件中已有内容的原始结构。我找到了论坛,他们说您可以使用 StringBuilders、XmlWriterSettings 和其他东西,但不起作用,而且正如您所见,新节点来自字符串,所以,我无法更改新节点的方式创建节点后,代码必须保持原样,只需添加规则以保持原始格式。
或者,如果有人知道在 Visual Studio 2008 上使用 C# 不可能做到这一点,请告诉我(我只相信明显的专家用户)。
请回复!谢谢。