2016-06-29 3 views
0

Я использую Saxon HE 9.6.0.6 и пытаюсь использовать XPath для получения значения значения атрибута.Как получить значение атрибута с помощью XPath и Saxon

Учитывая XML и запрос ниже:

<Pol> 
    <ISR> 
    <Code Val='Test1'/> 
    <Text Val='test 1'/> 
    </ISR> 
    <ISR> 
    <Code Val = 'Test2' /> 
    <Text Val = 'test 2' /> 
    </ISR> 
</Pol> 

//Pol/ISR/Code[@Val='Test2']/../Text/@Val 

Это дает мне атрибут ("Val = 'тест 2'"), но я хочу значение в (то есть 'тест 2'). Я думаю, мне нужно использовать xpath-функции, но не знаю, как их добавить в Saxon.

ответ

1

Вы можете использовать string(//Pol/ISR/Code[@Val='Test2']/../Text/@Val), если вы уверены, что выбрали только один или нулевой атрибут или //Pol/ISR/Code[@Val='Test2']/../Text/@Val/string(), чтобы выбрать последовательность строковых значений.

+0

По какой-то причине строка() не работает. Я также попробовал fn: string и импортировал пространство имен fn. – Neil

+0

Пожалуйста, объясните, каким образом предложение не работает, то есть если вы получите сообщение об ошибке, если да, то какой, как вы используете Saxon для оценки XPath. –

+0

Результат Evaluate равен null. – Neil