Получить относительный xpath 1.0 для работы с transalte

#xpath #xpath-1.0

#xpath #xpath-1.0

Вопрос:

У меня есть анализатор, который получает значения xml с помощью xpath и преобразует его в файл json. Я пытаюсь выполнить некоторый xpath и сделать его относительным, но могу заставить его работать, только если я сделаю его статическим (абсолютным).

 translate(ns2:ModelYear, translate(ns2:ModelYear,'0123456789',''), '')"
  

и я установил его как false для IsStaticPath, но это не работает, однако он работает, если я делаю:

 translate(/SOAP-ENV:Envelope/SOAP-ENV:Body/ns4:ProcessMessageResponse/ns4:payload/ns4:content/ns2:ShowVehicleInvoice/ns2:ShowVehicleInvoiceDataArea/ns2:VehicleInvoice/ns2:Invoice/ns2:VehicleInvoiceVehicleLineItem/ns2:Vehicle/ns2:ModelYear, translate(/SOAP-ENV:Envelope/SOAP-ENV:Body/ns4:ProcessMessageResponse/ns4:payload/ns4:content/ns2:ShowVehicleInvoice/ns2:ShowVehicleInvoiceDataArea/ns2:VehicleInvoice/ns2:Invoice/ns2:VehicleInvoiceVehicleLineItem/ns2:Vehicle/ns2:ModelYear,'0123456789',''), '')"
  

и я установил для IsStaticPath значение true, но я не хочу этого делать. Есть идеи? Не уверен, что мой xpath неверен или мой синтаксический анализатор нуждается в некотором исправлении.

Комментарии:

1. ns2: ModelYear. Предполагается ли, что точка должна быть там? опечатка?

2. Опечатка с моей стороны, все еще не работает.

3. Тогда остается только «ваш текущий узел» (обозначается .) — это не то, что вы ожидаете (и должно быть), когда / где вы выполняете относительную версию запроса.