Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается правильно составить запрос XPath, Использую SelectSingleNode 
:(
    Опции темы
kolchakA
Дата 9.7.2010, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Имеется следующий участок 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']")


PM MAIL   Вверх
diadiavova
Дата 9.7.2010, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Код

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



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
kolchakA
Дата 9.7.2010, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



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

спасибо заработало, но я почему-то думал, что нумерация элементов идет с нуля.
PM MAIL   Вверх
diadiavova
Дата 9.7.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



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

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

 smile

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
kolchakA
Дата 9.7.2010, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



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

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

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

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

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

Это сообщение отредактировал(а) kolchakA - 9.7.2010, 15:49
PM MAIL   Вверх
diadiavova
Дата 9.7.2010, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Код

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

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

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
kolchakA
Дата 9.7.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



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


уточните какой раздел, просто думал что это тот самый). И еще раз спасибо за ответ.
PM MAIL   Вверх
diadiavova
Дата 9.7.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



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

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

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.