2013-08-22 6 views
0

У меня есть XML-канал с <price> и <newprice> как два значения.
Мне нужна функция xpath для отображения <newprice>, только если это меньшее значение, чем старое <price>. Если значение не меньше, то не показывать ничего (или 0 тоже хорошо).xpath - если значение меньше другого значения

Пример:

<price>88</price><newprice>88</newprice> результат будет '0'
<price>88</price><newprice>45</newprice> результат будет '45'

В общем я хочу NewPrice быть виден только если это меньшее значение. В противном случае должно отображаться «0». Благодаря

+1

Возможно, здесь будет полезен пример ввода и ожидаемого вывода. –

+0

@ Larson Я боюсь, что пример еще недостаточно ясен. Кроме того, лучше добавить примеры, отредактировав свой вопрос, чем писать в комментариях. – acdcjunior

+0

Простите, ребята просто узнают, как использовать все это. пример опубликован - достаточно ли этого? – Larson

ответ

0

Для ввода

<?xml version="1.0" encoding="UTF-8"?> 
<prices> 
    <price>88</price> 
    <newprice>88</newprice> 
</prices> 

В XPath 1.0 это может работать (не возвращает ничего, если новые цены не ниже)

/prices/newprice[number(.) &lt; number(preceding-sibling::price)] 

В XPath 2.0 это может быть сделано (возвращает ноль)

if (prices/newprice &lt; prices/price) then prices/newprice else 0 
+0

благодарит Jirka. жаль, что я пытаюсь изменить чужую работу, поэтому пока не уверен в деталях, таких как версия xpath. я проведу оба и даю результат публикации здесь. большое спасибо. – Larson

+0

Спасибо, Jirka и Passerby – Larson

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