我正在尝试获取元素标题和运行时(同级),其中运行时值大于输入值。我使用xpath表达式的c代码是:
ElementValue = 140;
nodeList = root.SelectNodes(@"/moviedb/movie[./runtime>'" + ElementValue + "'/title | /moviedb/movie[./runtime>'" + ElementValue + "']/runtime");
这个xpath表达式没有返回任何内容。
我的XML文件:
<moviedb>
<movie>
<imdbid>tt0120689</imdbid>
<genres>Crime,Drama,Fantasy,Mystery</genres>
<languages>English,French</languages>
<country>USA</country>
<rating>8.5</rating>
<runtime>189</runtime>
<title lang="english">The Green Mile</title>
<year>1999</year>
</movie>
<movie>
<imdbid>tt0415800</imdbid>
<genres>Action,Animation,Drama,Thriller</genres>
<languages>English</languages>
<country>USA</country>
<rating>4.5</rating>
<runtime>139</runtime>
<title lang="english">Fight Club</title>
<year>2004</year>
</movie>
</moviedb>
最佳答案
您可以改为使用linq2xml
var doc=XDocument.Load(path);
var movies=doc.Elements("movie")
.Where(x=>(int)x.Element("runtime")>input)
.Select(x=>new
{
Title=x.Element("title").Value,
Runtime=(int)x.Element("runtime")
});
你现在可以在电影中反复播放
foreach(var movie in movies)
{
movie.Title;
movie.Runtime;
}
关于c# - XML Xpath表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23467491/