Использование LINQ to XML
foreach(XElement subEntity in doc.Root.Elements("ParentEntity")
.First(elem => elem.Attribute("ParentEntityID").Value == "1")
.Descendents("SubEntity") )
{
// Do stuff with each SubEntity e.g.:-
string name = subEntity.Attribute("SubEntityName");
}
Альтернативой, если вы используете Silverlight 4, будет вместо этого использовать XPath. Вам нужно добавить System.Xml.XPath.dll в ваши ссылки. В этом случае вышеуказанный цикл становится: -
foreach(XElement subEntity in doc.Root
.XPathSelectElements("ParentEntity[ParentEntityId='1']//SubEntity" )
{
// Do stuff with each SubEntity e.g.:-
string name = subEntity.Attribute("SubEntityName");
}
Кстати, вы не в своем реальном XML-префиксе именуете все атрибуты с именами элементов, в которые они помещены? Например, почему «SubEntityName», а не просто «Имя»?