【发布时间】:2016-03-14 16:51:47
【问题描述】:
尝试使用 xElement 在多个子节点中搜索时遇到问题。我的示例 XML 文件:
<VIDEOS>
<VIDEO>
<ID>1</ID>
<NAME>AAA</NAME>
<ACTORS>
<ACTOR>
<NAME>AAA</NAME>
<URL>www.aaa.com</URL>
</ACTOR>
<ACTOR>
<NAME>BBB</NAME>
<URL>www.bbb.com</URL>
</ACTOR>
<ACTOR>
<NAME>CCC</NAME>
<URL>www.ccc.com</URL>
</ACTOR>
</ACTORS>
</VIDEO>
<VIDEO>
<ID>2</ID>
<NAME>BBB</NAME>
<ACTORS>
<ACTOR>
<NAME>AAA</NAME>
<URL>www.aaa.com</URL>
</ACTOR>
<ACTOR>
<NAME>DDD</NAME>
<URL>www.ddd.com</URL>
</ACTOR>
<ACTOR>
<NAME>EEE</NAME>
<URL>www.eee.com</URL>
</ACTOR>
</ACTORS>
</VIDEO>
<VIDEO>
<ID>3</ID>
<NAME>CCC</NAME>
<ACTORS>
<ACTOR>
<NAME>CCC</NAME>
<URL>www.ccc.com</URL>
</ACTOR>
<ACTOR>
<NAME>BBB</NAME>
<URL>www.bbb.com</URL>
</ACTOR>
<ACTOR>
<NAME>EEE</NAME>
<URL>www.eee.com</URL>
</ACTOR>
</ACTORS>
</VIDEO>
</VIDEOS>
我尝试使用:
var videos = from element in xDocument.Descendants("VIDEO").
Descendants("ACTORS").
Descendants("ACTOR").
Where(e => e.Element("NAME").Value.ToLower().Contains(searchText.ToLower()))
select new
{
Id = element.Element("ID").Value,
Name = element.Element("NAME").Value,
Actors = element.Element("ACTORS").Value
};
使用以下作品,但我需要搜索所有演员姓名并从节点获取所有视频详细信息。请帮忙!
var videos = from element in xDocument.Descendants("VIDEO").
Where(e => e.Element("ACTORS").Value.ToLower().Contains(searchText.ToLower()))
select new
{
Id = element.Element("ID").Value,
Name = element.Element("NAME").Value,
Actors = element.Element("ACTORS").Value
};
【问题讨论】:
-
使用
.Value.Equals(searchText, StringComparison.OrdinalIgnoreCase)。