Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath - выбрать все узлы по содержимому подузлов / 15 сообщений из 15, страница 1 из 1
03.06.2011, 14:28
    #37293532
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<root>
  <list>
    <item>
      <title>ла-ла-ла1</title>
      <description>бла-бла-бла1</description>
    </item>
    <item>
      <title>ла-ла-ла2</title>
      <description>бла-бла-бла2</description>
    </item>
    <item>
      <title>ла-ла-ла3</title>
      <description>бла-бла-бла3</description>
    </item>
  </list>
</root>
Как выбрать с помощью XPath узлы item, у которых подузлы description или title содержат определённую подстроку? (т.е. выбрать не подузлы, а item'ы).
...
Рейтинг: 0 / 0
03.06.2011, 14:31
    #37293538
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
BPK,

Код: plaintext
select="//item[description='бла-бла-бла1']"
...
Рейтинг: 0 / 0
03.06.2011, 14:32
    #37293544
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
refregBPK,

Код: plaintext
select="//item[description='бла-бла-бла1']"

ПОДстроку, т.е. часть строки.
...
Рейтинг: 0 / 0
03.06.2011, 14:33
    #37293546
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
И как ещё добавить условие для title?
...
Рейтинг: 0 / 0
03.06.2011, 14:35
    #37293550
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
...
Рейтинг: 0 / 0
03.06.2011, 14:37
    #37293556
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
refregBPK,

Тут ответы на твои вопросы
Я это уже читал. Делаю как написано - не получается. В частности, пытался использовать функцию contains(description,'бла')
Ну хоть бы один пример был в этой статье!
...
Рейтинг: 0 / 0
03.06.2011, 14:42
    #37293572
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
BPK,

Покажи, что уже сделано и где не получается
...
Рейтинг: 0 / 0
03.06.2011, 14:58
    #37293609
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
refregBPK,

Покажи, что уже сделано и где не получается

Дык вроде уже всё сказал.

Код: plaintext
XmlNodeList nl = xdoc.SelectNodes("/root/list/item[contains(description='некий текст')]");
Так получается, но это не то, что мне надо, т.е. мне нужны элементы частично содержащие нужный текст.

Вычитал, что есть функция contains. Пытаюсь применить в точности как показано, ни фига не срабатывает:

Код: plaintext
/root/list/item[contains(description,'некий текст')]

Может быть имеет значение, что внутри description есть HTML-форматирование? Всякие там <p></p> <b> и прочие.
...
Рейтинг: 0 / 0
03.06.2011, 15:07
    #37293631
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
BPKМожет быть имеет значение, что внутри description есть HTML-форматирование? Всякие там <p></p> <b> и прочие.
Просто description это связка всех текстовых узлов, как следствие теги в искомом тексте не нужны...
Если надо без учета внутренних узлов, то description/text()
...
Рейтинг: 0 / 0
03.06.2011, 15:15
    #37293650
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
refregBPKМожет быть имеет значение, что внутри description есть HTML-форматирование? Всякие там <p></p> <b> и прочие.
Просто description это связка всех текстовых узлов, как следствие теги в искомом тексте не нужны...
Если надо без учета внутренних узлов, то description/text()
Всё равно не находит.
...
Рейтинг: 0 / 0
03.06.2011, 15:18
    #37293656
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
BPKВсё равно не находит. Ну, тогда ошибка в строке 25...
...
Рейтинг: 0 / 0
03.06.2011, 15:22
    #37293667
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
Всё, понял! Оно чувствительно к регистру букв.
...
Рейтинг: 0 / 0
03.06.2011, 16:15
    #37293801
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
На вот это
Код: plaintext
/root/list/item[contains(translate(title, ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’, ‘abcdefghijklmnopqrstuvwxyz’),'ssd')]
отвечает ошибкой:

"/root/list/item[contains(translate(title, ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’, ‘abcdefghijklmnopqrstuvwxyz’),'ssd')]" имеет недопустимый указатель (token).

Не пойму, что именно ему не нравится.
...
Рейтинг: 0 / 0
03.06.2011, 16:19
    #37293812
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
Отбой тревоги.
Дело в том, что я скопировал пример с америкосского сайта, где заботливый скрипт-оформитель расставляет вокруг строковых констант свои особые кавычки - левую наклонную и правую наклонную.
...
Рейтинг: 0 / 0
03.06.2011, 16:22
    #37293817
BPK
BPK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XPath - выбрать все узлы по содержимому подузлов
как бы теперь вместо этого монстра translate подставить что-нибудь покороче?
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath - выбрать все узлы по содержимому подузлов / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]