public static string GetCampaignName(string xml, string accountName, string rcName)
{
return XDocument.Parse(xml).Descendants("Account")
.Where(a => string.Equals(a.Attribute("name").Value,accountName)).Descendants("Campaign")
.Where(c => c.Descendants("RemoteCampaign").Select(rc => rc.Value).Contains(rcName))
.First().Attribute("name").Value;
}
Приведенная выше функция предполагает, что каждая кампания будет иметь имя, иначе будет выдано NullReferenceException
; поэтому, если вы считаете, что не все кампании будут иметь имена, разбейте их и проверьте на наличие нулей.