XPath: выбрать только элемент, если значение ниже, чем другое в том же узле - PullRequest
1 голос
/ 09 февраля 2020

У меня проблема с моим XPath. Мне нужно выбрать для WP ALL IMPORT только те значения, которые ниже, чем другое значение в том же узле. В этом случае мне нужно выбрать узлы, где значения в search_price меньше, чем rrp_price. Я читаю все вещи на stackoverflow, но ничто не соответствует этому случаю. Вы можете помочь мне ? Я чешу голову операторам, но не могу найти хороший способ. Спасибо

Моя база XPath - это / product

Пример для одного продукта:

<product> <rrp_price> 192.90 </rrp_price> <search_price> 172.90 </search_price> </product>

1 Ответ

1 голос
/ 09 февраля 2020

В зависимости от точной структуры вашего xml, это выражение xpath

//product[./search_price < ./rrp_price]

(или что-то подобное) должно получить все узлы product, у которых есть search_price дочерний элемент со значением который меньше значения значения в rrp_price дочернем узле.

Редактировать: в переводе на "обычный английский sh" выражение означает: выберите любой узел (//) с именем product, который имеет ([ и более поздние ]) дочерний элемент (./) с именем search_price, у которого дочерний элемент имеет значение (обратите внимание, что в этом случае xpath молча предполагает, что при обращении к дочернему элементу вы обратитесь к его числовому значению; если это не так, необходимо дать более четкие инструкции), которое ниже (<), чем значение (та же самая бесшумная обработка) другого потомка product с именем rrp_price.

...