как написать этот запрос 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]Правило запоминания : оператор
[]имеет более высокий приоритет (связывает сильнее), чем аббревиатура//.