2013-07-19 2 views
-1
<ns2:createOrder> 
     <ns2:serviceResponseContext > 
      <interactionId></interactionId> 
      <requestId>5</requestId> 
      <requestReceivedTimestamp>Mon Jul 15 10:06:45 MDT 
</requestReceivedTimestamp> 
      <responseGeneratedTimestamp>Mon Jul 15 10:07:29 MDT </responseGeneratedTimestamp> 
      <serverHostPort></serverHostPort> 
      <serviceDuration>44541</serviceDuration> 
      <statusCode>0</statusCode> 
     </ns2:serviceResponseContext> 
     <ns2:createOrderResponse> 
      <ns2:statusLog> 
       <ns2:createOrderStep>PROVISION_CODE</ns2:createOrderStep> 
       <ns2:statusCode>0</ns2:statusCode> 
       <ns2:message></ns2:message> 
      </ns2:statusLog> 
      <ns2:statusLog> 
       <ns2:createOrderStep>VISION_CODE</ns2:createOrderStep> 
       <ns2:statusCode>0</ns2:statusCode> 
       <ns2:message></ns2:message> 
      </ns2:statusLog> 

Мне нужно извлечь первый <statusCode> из файла XML только тогда, когда StatusCode = 0 <statusCode> должен быть внутри <createOrder> с использованием регулярных выражений.Найти XML-тег внутри файла журнала, используя регулярное выражение?

Я просто нужен первый <statusCode>0<statusCode> и игнорировать другие внутри <createOrderStep>

Спасибо за вашу помощь !!

+4

Почему бы вам не использовать XML API вместо этого? Это, вероятно, будет намного менее хрупким ... –

+2

Не используйте регулярные выражения. используйте правильный парсер DOM. Вы обнаружите, что это намного проще сделать это с помощью xpath, чем когда-либо с регулярным выражением. –

+1

Его часть моей стажировки, и я должен использовать регулярное выражение. Спасибо за ваш ввод –

ответ

0

Попробуйте после этого работает как

<statusCode>0</statusCode> and <ns2:statusCode>0</ns2:statusCode>

/<(ns2:)?statusCode>0<\/(ns2:)?statusCode>/

+0

Спасибо !!! но указанный выше код не работает –

+0

\ bcreateOrderResponse \ b. * \ bstatusCode> 0

+0

Не знаете, почему мой regx не будет работать. Я тестировал его перед вставкой. Покажите мне код, как вы его пытаетесь. BTW Я не вижу createOrderResponse в xml, поэтому не знаю, почему вы использовали его в своем регулярном выражении. – GiridharBandi

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