获取xml属性值为string []

时间:2010-01-10 03:44:26

标签: c# xml xmlreader

我的xml文件有这样的内容:
...
<Keyword name = "if" />
<Keyword name = "else" />
<Keyword name = "is" />
...

那么我如何递归获取name属性的所有值并将其添加到List<string>string[]。也许是一个foreach循环?


我关注了codemeit并且一直收到错误:Data at the root level is invalid. Line 1, position 1.我的xml文件是
<KeyWords>
...
<KeyWord name = "if" />
...
</KeyWord>


新问题The '\' character, hexadecimal value 0x5C, cannot be included in a name.,但文件相同。

2 个答案:

答案 0 :(得分:5)

假设变量testXml等于跟随xml字符串

<Keywords>
 <Keyword name = "if" />
 <Keyword name = "else" />
 <Keyword name = "is" />
</Keywords>

使用XElement和LINQ提取名称属性值

var myXml = XElement.Parse(testXml );
var myArray = myXml.Elements().Where(n => n.Name.LocalName.Equals("Keyword"))
                    .Select(n => n.Attribute("name").Value)
                    .ToArray();

myArray将包含{“if”,“else”,“is”}

更新

感谢@SLaks评论,我们实际上可以做到

var myArray = myXml.Elements("Keyword").Attributes("name").Select(n => n.Value);

答案 1 :(得分:0)

您可以使用XmlNodeList课程。您需要传递适当的XPATH来获取值并遍历列表。