【发布时间】:2013-02-07 14:02:04
【问题描述】:
我有一个替换 resx 文件中值标签内容的代码。 如果我获取值元素并更改其内容,一切都会按预期工作:
foreach (XElement dataEl in doc.Root.Descendants("data"))
{
XElement valueEl = dataEl.Element("value");
valueEl.Value = valueEl.Value;
Console.WriteLine(dataEl);
}
结果:
...
<value>myvalue</value>
...
但设置值:
dataEl.SetElementValue("value", dataEl.Value);
结果:
...
<value>
myvalue
</value>
...
SetElementValue 为什么要添加这些新行?
【问题讨论】:
-
为什么重要? :)
-
因为我为此浪费了 15 分钟,而且我想知道事情是如何运作的 :-)
-
我知道那种感觉——也许值本身包含“新行标签”试试这个:
dataEl.SetElementValue("value", dataEl.Value.Replace("\n","")); -
我无法重现此行为 - 两种方法都为
<root><data><value>myvalue</value></data></root>-<data> <value>myvalue</value> </data>输出相同的结果(这是针对 .NET 4.0)。 -
我在这里上传了一个 resx 文件:wikiupload.com/G5MV6T26NIJRIC4
标签: c# .net xml linq linq-to-xml