从XML中选择属性

时间:2014-11-25 02:35:30

标签: c# xml xpath

我在解析XML文档以获取我想要的数据时遇到了一些麻烦。我有这个xml文档:

<root response="True">
    <movie title="Spider-Man 2" year="2004" rated="PG-13" runtime="127 min" 
     genre="Action, Adventure" director="Sam Raimi" 
     actors="Tobey Maguire, Kirsten Dunst, James Franco, Alfred Molina" 
     metascore="83" type="movie" />
</root>

我遇到了一些麻烦,因为我想保存这些属性而且我不确定如何。我尝试过使用XmlElement类和SelectSingeNode方法,但我似乎无法使用它。我到目前为止尝试的是:

root.SelectSingleNode(@"\\movie[title]).InnerText;

但我一直收到以下错误:

System.Xml.XPath.XPathException'\\\\movie[@genre]' has an invalid token.

我希望能够保存,例如,电影的标题。我能做些什么不同的事情?

2 个答案:

答案 0 :(得分:1)

尝试此操作以获取所需属性的值,例如标题:

root.SelectSingleNode("/root/movie/@title").Value

答案 1 :(得分:1)

这只是一个例子,我建议你做一个课程,但这应该适合你:

    foreach (XmlElement movie in root.SelectNodes("//movie"))
    {
        string title = string.Empty;
        string year = string.Empty;
        //etc
        title = movie.Attributes["title"] != null ? movie.Attributes["title"].Value : string.Empty;
        //etc
    }