2013-11-07 3 views
1

Как бы мне составить и xPath, который выбирает все записи (включая столбцы), содержащие джинсы третьей категории?Поиск xPath, содержащего текст

<record> 
<column name="category"> <![CDATA[ Heren ]]> </column> 
<column name="subcategory"> <![CDATA[ Kleding ]]> </column> 
<column name="thirdcategory"> <![CDATA[ Jeans ]]> </column> 
</record> 

Я знаю, что выбрать, я должен использовать:

/record/column[@name="thirdcategory"] 

Но как я добавляю "содержит„джинсы“?

ответ

1

С помощью и направлением Томалака, я нашел ответ:

/record[column[@name='thirdcategory' and contains(., 'Jeans')]] 
+0

Ах, молодец, я упустил часть« выбирает все * записи * ». Да, вот как вы это сделаете. – Tomalak

+0

Спасибо @Tomalak! – inTOWN

+0

BTW: Совершенно верно, чтобы отметить ваш ответ будет принят. – Tomalak

3

. относится к текущему узлу, вы можете использовать его для сравнения строк.

 
/record/column[@name='thirdcategory' and contains(., 'Jeans')] 

или это, чтобы избежать частичных совпадений

 
/record/column[@name='thirdcategory' and normalize-space(.) = 'Jeans')] 
+0

Это помогает много! Однако теперь я получаю только столбец, мне нужна вся запись. Как переложить? Мне нужны все записи, включая все столбцы, но только записи, в которых есть «джинсы» третьей категории. (Так что мне не нужны записи с третьей категорией «somethingelse». Не могли бы вы мне помочь? – inTOWN

+1

Я думаю, что нашел: '/ record [column [@ name = 'thirdcategory' и содержит (., 'Jeans ')]] ' – inTOWN

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