Привет, я пытаюсь использовать XPath для динамического отображения/скрытия параметров в раскрывающемся списке XForms.
Вот XML с моим выпадающим списком:
<xml_someField>
<label>Podmiot</label>
<hint/>
<help/>
<alert/>
<item>
<label>1</label>
<value>1</value>
</item>
<item>
<label>2</label>
<value>2</value>
</item>
<item>
<label>3</label>
<value>3</value>
</item>
<item>
<label>4</label>
<value>4</value>
</item>
</xml_someField>
В основном у меня есть other_field
, которые дают мне вывод, например, - 1, 1 2, 1 3, 1 2 3 4 и т. Д. в зависимости от того, что я проверяю в другом поле со списком.
Итак, в моем раскрывающемся списке в calculate я написал выражение XPath
if(//other_field != '') then
if(//other_field castable as xs:integer) then
//other_field
else .
else
false()
Если я получаю из other_field только одно число - 1, 2, 3 или 4, это работает, оно заполняет мое xml_someField выбранным числом, но если я получаю больше одного, например, - 2 3 4 или 1 3 4, это дает мне выбрать все 4 варианта.
Все, что я хочу, это когда я получаю 1 3 4, чтобы в моем раскрывающемся списке отображались варианты 1, 2 и 3 без 4.
Я могу распознать номер, используя
if(contains(//othe_field, '1') then
Но что дальше, есть ли способ показать/скрыть метку или значение элемента?
//other_field/item/label[text() = '1'] = false()
И я должен написать это в рассчитать или лучше в ограничении?