【发布时间】:2016-05-24 14:35:32
【问题描述】:
这是我的 xml:
<settings>
<Element Name="a" Attribute="b" />
<Element Name="b" Attribute="c" />
</settings>
这是我的代码:
const string SettingsFileName = "settings.xml";
XmlDocument xmlDocument = new XmlDocument();
const string RootNode = "settings";
const string elementName = "Element";
const string attributeName = "Name";
const string attributeValue = "b";
xmlDocument.Load(SettingsFileName);
XElement xElement = XElement.Load(new XmlNodeReader(xmlDocument));
var entry = from element in xElement.Elements(elementName)
where (string)element.Attribute(attributeName) == attributeValue
select element;
string[] values = { "Attribute", "d" };
xElement = entry.First<XElement>();
for (int i = 0; i < values.Length; i++)
{
string name = values[i++];
string value = "";
if (i < values.Length)
value = values[i];
xElement.Attribute(name).Value=value;
}
我想使用 XElement 更新 xmlDocument,最好不使用 XDocument。我似乎错过了一步,因为这不这样做:
xmlDocument.Save(SettingsFileName);
这可能吗?如果可以,怎么做?
【问题讨论】:
-
编辑主题以强调:不使用XDocument
-
一个简单的谷歌搜索会产生很多结果这里是一个示例供您查看stackoverflow.com/questions/18508765/…
-
您需要再次将更改后的 XML 加载到
XmlDocument中。你为什么要混合这两个 API?只需选择一个 - 最好是 LINQ to XML。 -
谢谢,MethodMan。那和我一直在谷歌搜索的其他十几种可能的解决方案都不起作用。试着看看你找到的解决方案是否真的解决了问题,然后再说你已经解决了。