Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Не получается правильно составить запрос XPath


Автор: kolchakA 9.7.2010, 05:32
Имеется следующий участок html кода:
Код

<td class="myclass"><a href="http://site.com">Anchor</a>...</td>


Мне нужно получить первый узел a. Использую следующий код:

Код

Sgml.SgmlReader rdr = new Sgml.SgmlReader();
XmlDocument doc = new XmlDocument();
rdr.Href = "page.htm";
doc.Load(rdr);
XmlElement elem = (XmlElement)doc.SelectSingleNode("//td[@class='myclass']/a");


Получить узел не удается (возвращается NULL). Укажите, плз, в чем ошибка (уточню что сам td получить удавалось вот таким запросом: 
Код

("//td[@class='myclass']")


Автор: diadiavova 9.7.2010, 08:34
Код

//td[@class='myclass']/a[1]

Автор: kolchakA 9.7.2010, 09:22
Цитата(diadiavova @  9.7.2010,  08:34 Найти цитируемый пост)
//td[@class='myclass']/a[1]

спасибо заработало, но я почему-то думал, что нумерация элементов идет с нуля.

Автор: diadiavova 9.7.2010, 11:46
Цитата(kolchakA @ 9.7.2010,  10:22)
Цитата(diadiavova @  9.7.2010,  08:34 Найти цитируемый пост)
//td[@class='myclass']/a[1]

спасибо заработало, но я почему-то думал, что нумерация элементов идет с нуля.

 smile

Добавлено через 3 минуты и 37 секунд
В смысле, если обрабатывать программно, то так и есть, но в XPath все коллекции индексируются с единицы.

Автор: kolchakA 9.7.2010, 15:47
а вот еще непонятный момент. Как написать запрос, который найдет все ссылки следующего формата:
Код

<a class="myclass" href="...codeinhref...">anchor</a>

Объясню, нужны все ссылки class которых myclass, а в параметр href входит подстрока codeinhref

Здесь http://msdn.microsoft.com/en-us/library/ms256086.aspx бегло просмотрел, но подходящего не нашел

p.s. кстати, а как обратиться затем к href параметру элемента ссылка (то есть XmlElement)?

Автор: diadiavova 9.7.2010, 17:15
Код

a[@class='myclass' and contains(@href, 'codeinhref')]

http://msdn.microsoft.com/ru-ru/library/ms256195.aspx

И кстати для таких вопросов есть специальный раздел. smile 

Автор: kolchakA 9.7.2010, 17:41
Цитата(diadiavova @  9.7.2010,  17:15 Найти цитируемый пост)
a[@class='myclass' and contains(@href, 'codeinhref')]


уточните какой раздел, просто думал что это тот самый). И еще раз спасибо за ответ.

Автор: diadiavova 9.7.2010, 17:47
Цитата(kolchakA @ 9.7.2010,  18:41)
уточните какой раздел, просто думал что это тот самый). И еще раз спасибо за ответ.

http://forum.vingrad.ru/forum/XML-XSL.html

Это вопрос по сути по фармату XPath, а не по хмл-апи в дотнете. Так что туда. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)