如何将 XML 文件(XmlDocument)的内容写入文本文件?

Posted

技术标签:

【中文标题】如何将 XML 文件(XmlDocument)的内容写入文本文件?【英文标题】:How to I write the contents of XML file(XmlDocument) to text file? 【发布时间】:2020-06-30 05:26:28 【问题描述】:

我在 XMLDocument 类型的局部变量 xml 中有 xml 数据 我希望将 xml 数据原样保存到本地文件中。

我尝试过System.IO.File.WriteAllText(@"C:\MyProfile\OutOut.txt", xml.ToString()); 之类的方法,但不起作用。

有人可以告诉我如何进行吗?

如果需要任何其他数据,现在也请告诉我。

谢谢。

**更新:** 上面的任务是通过使用XmlDocument.Save(FilePath); 完成的,现在只是对问题的一个小更新如下:

如果我只需要保存一个特定的父节点及其子节点,我该如何继续

示例 xml 文件

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Master Name="Accounts">
<Employee>
    <Section>
      <Details>
        <Name="abc" ID="68" PF="9999" />
      </Details>
      <Department DeptId="12" />
    </Section>
    <Section>
      <Details>
        <Name="xyz" ID="69" PF="9999"  />
      </Details>
      <Department DeptId="13" />
    </Section>
</Employee>
</Master>

只有节点 &lt;Employee&gt; 和它的子节点。

【问题讨论】:

您是否查看过XmlDocument class 是否提供了满足您需求的方法? 或者在互联网上搜索类似 xmldocument to string c# 这能回答你的问题吗? How do I write an XML string to a file? XmlDocument.Save() - 使用文件名作为“.txt” ToString 方法是正确的解决方案。为什么它不起作用。我怀疑没有回车,所以每件事都在一行上。 Xml 不需要返回,所以你所拥有的是正确的。 【参考方案1】:

此代码将 XmlDocument 转换为文本:

using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))

    xmlDoc.WriteTo(xmlTextWriter);
    xmlTextWriter.Flush();
    return stringWriter.GetStringBuilder().ToString();

【讨论】:

这里有这么多的代码,但它并没有实现保存到文件的既定目标。 使用 XmlDocument.Save(FilePath); 将 Xml 内容保存到文本文件中。

以上是关于如何将 XML 文件(XmlDocument)的内容写入文本文件?的主要内容,如果未能解决你的问题,请参考以下文章

XmlDocument 如何将新记录插入现有 XML 文件

如何将 System.Xml.XmlDocument 类型添加到应用程序状态

将 XML 文件读入 XmlDocument

如何将 XmlNode 从一个 XmlDocument 复制到另一个?

如何在 C# 中使用 XmlDocument 和 XmlNode 修改现有 XML 文件

使用 XmlDocument 读取 XML 属性