从 XML 中选择属性

本文关键字:属性 选择 XML | 更新日期: 2023-09-27 18:32:00

我在解析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.

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

从 XML 中选择属性

尝试这样做来获取所需属性的值,例如标题:

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

这只是一个例子,我建议你创建一个类,但这应该对你有用:

    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
    }