我正在尝试提取字符串以###开头的所有id属性(如List)。这是我的第一次尝试:
const string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<Actions>
<Action id=""###SignIn"">1</Action>
<Action id=""SignOut"">2</Action>
<Action id=""###Open"">3</Action>
</Actions>";
var xdoc = XDocument.Parse(xml);
var test = xdoc.Root.Elements()
.Where(e => e.Attribute("id").Value.StartsWith("###"))
.Select(e => e.Attribute("id").Value.StartsWith("###")).ToList();
最终,我想用字典中的值替换这些字符串(键值与xm数据中的字符串相同)。
答案 0 :(得分:2)
对您尝试的Select()
部分进行略微修改应该:
var xdoc = XDocument.Parse(xml);
var test = xdoc.Root
.Elements()
.Where(e => e.Attribute("id").Value.StartsWith("###"))
.Select(e => e.Attribute("id")).ToList();
foreach (var t in test)
{
//replace id attribute value with string from dictionary
t.Value = myDictionary[t.Value];
}