как написать этот запрос xpath?
Я cosuming более RSS с нескольких сайтов и моя реальная проблема находится в поле их случае, если он опубликован потому, что большинство их значения случае, если он опубликован не действует почему-то мне удастся извлечь значение Из случае, если он опубликован полей с помощью XPath-выражения. вот что я написал:
//item/title |
//item/description |
//item/link |
//item/pubDate |
//item/category
И я хочу ограничить свой результат 10 последними новостями, которые я знаю, в xpath у нас есть функция под названием postion() , и я должен использовать ее следующим образом:
[postion() <= 10]
Но когда я смешиваю эти два запроса xpath вместе, я не получит должного результата:
//item/title |
//item/description |
//item/link |
//item/pubDate |
//item/category [position() <= 10]
Как я могу написать этот конкретный запрос xpath в правильном формате. и есть ли какая-нибудь ускоренная книга для xpath?
Регады.
3 ответа:
Я предполагаю, что последние новости находятся на самом верху.
Используйте :
(//item)[not(position() > 10)]/* [self::title or self::description or self::link or self::pubDate or self::category ]
Пояснение :
Это выражение выбирает все
title
,description
,link
,pubDate
иcategory
элементы, являющиеся потомками одного из первых 10item
элементов в XML-документе.Это часто задаваемый вопрос и часто совершаемая ошибка, чтобы попытаться выбрать первый (или любой элемент позиции, скажем
item
)://item[1]
При этом выбираются все
item
элементы документа, которые являются первый ребенок их родителя - и таких элементов может быть многоitem
.Выражение XPath, которое выбирает только первый элемент
item
в документе:(//item)[1]
Правило запоминания : оператор
[]
имеет более высокий приоритет (связывает сильнее), чем аббревиатура//
.