Получить XML-узел, используя XMLNode(.Net) с несколькими условиями

Мой формат XML такой.

<Rule id="MyRule">
      <SubRule type="min" id="50" />
</Rule>

Я написал путь для получения всех узлов, id которых больше, чем равно 50.

Rule[@id='MyRule']/subrule[@type='min' and @id>='50']

Но я не получил то, что хотел, он просто вернул все узлы.


person kst    schedule 11.03.2013    source источник


Ответы (1)


Вы пробовали следующее (изменение регистра в SubRule и сравнение строк)?

Rule[@id='MyRule']/SubRule[@type='min' and compare(@id,'50')>=0]

Все ваши числа двузначные? (Я предполагаю, что «7» > «50», «100» ‹ «50»)

Если вы просто хотите сравнить числа, вы можете попробовать

Rule[@id='MyRule']/SubRule[@type='min' and number(@id)>=50]
person jbl    schedule 11.03.2013
comment
Спасибо за ваш ответ, но я запутался в этом. Все, что я хочу, это получить узлы, @id которых больше 50. - person kst; 11.03.2013
comment
@kst только что закончил мой ответ - person jbl; 11.03.2013