2016-07-24 4 views
0

У меня есть ответ на мыло, и мне нужно получить значение тега platformMessage, которое я набрал xpath-запрос, но он не работает, проверяя файл журнала в jmeter, говорит мне, что этот префикс должен разрешаться в пространстве имен: ns2" , ЭРВО в XPATH запросаКак извлечь значение из ответа на мыло jmeter

/S:Envelope[@xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"]/S:Body/ns2:activateProductResponse[@xmlns:ns2="http://ws.business.api.fulfillmentengine.com/"]/return/platformMessage 

ЭРВО XML-

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <ns2:activateProductResponse xmlns:ns2="http://ws.business.api.fulfillmentengine.millicom.com/"> 
     <return> 
      <platformCode>1</platformCode> 
      <platformMessage>Fail operation.El set-top box ya existe. Code Response:|22098: 22098: 1</platformMessage> 
      <responseCode>13</responseCode> 
      <responseMessage>Error executing action in platforn</responseMessage> 
      <UUID>3cb49b29-513e-11e6-b5db-005056807f0c</UUID> 
      <platformName>INTRAWAY</platformName> 
     </return> 
     </ns2:activateProductResponse> 
    </S:Body> 
</S:Envelope> 

ответ

0

Использование @xmlns: ns2 в XPath не действует, потому что несмотря на внешнее пространство имен не то же самое, атрибут.

Если включить «использование пространств имен», то следующий XPath должен работать:

/S:Envelope/S:Body/ns2:activateProductResponse/return/platformMessage 

Или, если вы хотите грязный (и медленный) обходной путь, вы можете ссылаться на именах узлов следующим образом:

/*[local-name()='Envelope']/*[local-name()='Body']/*/[local-name()='activateProductResponse]/return/platformMessage 
0

вы должны прочитать:

обратить особое внимание на:

как произведение круглый для ограничения пространства имен в реализации парсера Xalan XPath, на которых базируется JMeter, вы можете предоставить файл свойств который содержит сопоставления для префиксов пространства имен: prefix1 = Полное пространство имен 1 prefix2 = Полное пространство имен 2 ... Вы ссылаетесь на этот файл в файле jmeter.properties, используя pro Perty:

  • xpath.namespace.config

Посмотрите в jmeter.properties этого свойства, и все ясно объяснил

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