2010-10-25 4 views
2

это пример XML я хочу, чтобы скоблить:Как я могу анализировать информацию из этого XML?

http://www.dreamincode.net/forums/xml.php?showuser=335389

Обратите внимание, что contactinformation тег имеет множество контактных элементов, каждый из которых аналогичные, но с разными значениями.

Например, элемент, в котором есть содержимое AIM, как я могу получить содержимое тега Value, находящегося в том же семействе, что и элемент контента AIM?

Вот где я застрял. Благодаря!

В принципе: мне нужно найти тег AIM, запишите, где он находится, и найдите элемент Value внутри этого же семейства. Надеюсь, это делает вопрос более ясным.

ответ

3

Использование XPath, как показано ниже поможет вам узел контакта/значение, где контакт/название «AIM»:

/ipb/profile/contactinformation/contact[title='AIM']/value 
+0

Nevermind, он работает. Огромное спасибо! – 2010-10-25 16:09:49

1

Вы пытались разобрать XML, а не «соскабливать» его?

+0

Я имел в виду «разбор». – 2010-10-25 16:04:32

4

LINQToXML

var doc = XDocument.Load(@"http://www.dreamincode.net/forums/xml.php?showuser=335389"); 
var aimElements = doc.Descendants("contact").Where(a=>a.Element("title").Value == "AIM").Select(a=>a.Element("value").Value); 

это даст вам список строки, которые содержат значение элемента значения для контакта, имеющего название AIM, вы можете сделать First() или FirstOrDefault, если считаете, что должно быть только 1

+0

Отлично! Мне нравится конвергенция технологий (LINQ вместо XPath). –

Смежные вопросы