【问题标题】:How to I write the contents of XML file(XmlDocument) to text file?如何将 XML 文件(XmlDocument)的内容写入文本文件?
【发布时间】: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 不需要返回,所以你所拥有的是正确的。

标签: c# xml xmldocument


【解决方案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 内容保存到文本文件中。
猜你喜欢
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 2014-02-28
  • 2011-03-05
  • 2014-04-07
相关资源
最近更新 更多