Я пытаюсь просмотреть всех своих друзей из Facebook, которые ходили в какую-то школу.Я использую FQL, чтобы получить XML-файл, содержащий всех моих друзей с информацией об образовании.Но я не могу использовать FQL, чтобы выбирать только тех, кто ходил в одну школу.Поэтому я пытаюсь использовать Linq to XML для выбора только тех пользователей, которых я хочу.Я пробовал некоторые методы, но они не будут работать для меня.
Вот мой запрос linq:
XDocument doc = RemoveNamespace (XDocument.Load(url));
string[] search = {"Katho", "katho", "kortrijk" , "vhti"};
List<string> keys = new List<string>( search );
var user = (from usr in doc.Descendants("user")
select new fbUser
{
name = usr.Element("name").Value,
email = usr.Element("email").Value,
current_location = StringExtensions.checkNull(usr.Element("current_location").Value,""),
hometown_location = usr.Element("hometown_location").Value,
pic = StringExtensions.checkNull(usr.Element("pic_square").Value,"http://www.fox16.com/media/avatar/default.jpg"),
education_history = (from edu in usr.Descendants("education_info")
//where usr.Element("education_history").HasElements
where keys.Contains(edu.Element("name").Value)
select new Education
{
name = StringExtensions.checkNull(edu.Element("name"),""),
year = StringExtensions.checkNull(edu.Element("year"),""),
school_type = StringExtensions.checkNull(edu.Element("school_type"),""),
concentrations = from conc in edu.Descendants("concentrations")
where (edu.Element("concentrations").HasElements)
select new Concentration
{
name = StringExtensions.checkNull(conc.Element("concentration").Value, "")
}
})
}).Take(5)
;
РЕДАКТИРОВАТЬ: образец XML можно найти здесь: образец XML
Есть еще одна проблема.Название школы не является прямым атрибутом объекта fbUser.Также в xml-файле название школы можно найти только здесь
<user><education_history><education_info><name>
Итак, вот мое утверждение where:
where usr.Element("education_history").Element("education_info").Element(name").value == "schoolname"
Проблема в том, что не всегда есть узел education_history или education_info вXML.
Так что мне также нужен способ обойти это ..
Любая помощь по этой проблеме очень ценится.
Я надеюсь, что вы можете мне помочь!
Grtz