powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XPath - выбрать все узлы по содержимому подузлов
15 сообщений из 15, страница 1 из 1
XPath - выбрать все узлы по содержимому подузлов
    #37293532
BPK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
XPath - выбрать все узлы по содержимому подузлов
    #37293538
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BPK,

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

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

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

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

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

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

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


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