【发布时间】:2014-06-09 13:19:07
【问题描述】:
当我运行<!-- This list contains names/words with specific casing - and specific to english only --> 时,将在新目的地中删除。
有什么办法可以防止它发生。我尝试使用XDocument.Root 发生同样的事情。
Ps:我知道方法不在类内:)。
<!-- This list contains names/words with specific casing - and specific to english only -->
<ignore_list>
<name>A.M.</name>
<name>Aaron</name>
<name>Abbie</name>
<name>Abi</name>
<name>Abigail</name>
<name>Abolfazl</name>
<name>Adam</name>
</ignore_list>
private static void EnGBNamesEtc()
{
var listNames = new List<string>(){"some", "names");
var xele = XElement.Load(@"C:\Users\ivandro\Source\subtitleedit\Dictionaries\en_GB_names_etc.xml");
var names = listNames.Except(xele.Elements("name").Select(n => n.Value)).ToList();
foreach (var newName in names)
{
xele.Add(new XElement("name", newName));
}
SaveToNewXml(xele, @"D:\Backup\en_GB_names_etc1.xml");
}
private static void SaveToNewXml(XElement xelem, string dest)
{
XmlWriterSettings xws = new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true };
var ordered = xelem.Elements("name").OrderBy(element => element.Value).ToList();
using (XmlWriter xw = XmlWriter.Create(dest, xws))
{
xelem.ReplaceAll(ordered);
xelem.Save(xw);
}
}
【问题讨论】:
-
这个 SO 可能会帮助stackoverflow.com/questions/20481741/…
-
与您的问题无关,但是: 1. 没有
await的async没有多大意义,您将收到警告。 2.You should avoidasync voidmethods. -
该方法是使用
WebClient下载内容...我将其删除以使其更简单并忘记了异步;)@svick
标签: c# .net xml linq linq-to-xml