【问题标题】:why XElement cannot save my xml file to the file?为什么 XElement 无法将我的 xml 文件保存到文件中?
【发布时间】:2012-10-25 05:50:57
【问题描述】:

我想构造一个长的 xml 字符串,它的一些实体来自另一个由 dll 读取的 xml 文件。最后,我想将此xml字符串保存到XElement.Save()的文件中。它无法将字符串保存到文件中。

例如:

XElement root = new XElement("Root");
// .....
root.Save(filename); // <-- wrong!

但是,如果我不使用 dll,一切都很好。即使我只是调用 dll 而什么都不做,它对我也不起作用。有谁能够帮助我?谢谢

【问题讨论】:

  • 实际发生了什么? “它无法将字符串保存到文件中”并不是对问题的良好描述,代码中的“错误”也没有给我们任何信息。
  • 一切正常,但没有按照说明保存字符串。没有错误消息或其他我可以检查的东西。只要在程序中触摸dll,就无法保存字符串。
  • 文件名是相对的还是绝对的?它是可能在程序的其他地方使用过的文件吗?您是否有任何可能隐藏错误的异常处理?
  • 当我只保存自己的 xml 字符串而不调用 dll 时,它工作正常。
  • [抱歉编辑器不允许我输入新行的“回车”键].....当我调用 dll 并尝试保存我自己的 xml 字符串时,它没有不保存。我猜我的程序或dll有问题,但我找不到。

标签: c# xml save


【解决方案1】:

将节点附加到现有 XML 文件中: 从一开始,

1) 创建一个Root.xml file:

<?xml version="1.0" encoding="utf-8"?>
<Main>
</Main>

2) 使用此代码Load and Append 节点:

XElement xml = new XElement("Root");

XDocument xdoc = XDocument.Load("Root.xml");
xdoc.Element("Main").Nodes().Last().AddAfterSelf(xml);  //append after the last backup element
xdoc.Save("Root.xml");

【讨论】:

  • 我认为它可能与xml格式无关。xml字符串由两部分组成:一个来自我的程序,另一个来自dll。即使我尝试保存我自己的 xml 字符串,它也不会保存字符串。这很奇怪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 2012-08-27
  • 2021-05-07
  • 2021-12-31
  • 1970-01-01
  • 2017-05-07
相关资源
最近更新 更多