2013-03-07 4 views
0

Мне нужно получить доступ дочернего узла, содержащее пространство имен по умолчанию Для доступа к узлу IFX корня, который содержит пространство имен я используетXML разбора с помощью XPath для дочернего узла, содержащего пространство имен по умолчанию

//ns:IFX/ns:BankSvcRs/ns:RqUID 

, но теперь мне нужно получить доступ <severity> и <SPName> и <CardEmbossNum>

<IFX xmlns="http://www.ifxforum.org/IFX_150"> 

    <BankSvcRs> 
     <RqUID>124566665222</RqUID> 
     <com.bac:CardAddRs xmlns:com.bac="http://www.fnf.com/xes/bac"> 
      <Status> 
       <Severity>Info</Severity> 

      </Status> 
      <RqUID>124566665222</RqUID> 
      <com.fnf:CardId xmlns:com.fnf="http://www.fnf.com/xes"> 
       <CustId> 
        <SPName>com.fnf.xes.BOSS</SPName> 
        <CardLogicalData> 
         <CardEmbossNum/> 
         <Name>SpiderMAN</Name> 
        </CardLogicalData> 
       </CustId> 
      </com.fnf:CardId> 
      <com.bac:CardInfo> 
       <com.bac:CardAssociation/> 
      </com.bac:CardInfo> 
      <com.fnf:CardRec xmlns:com.fnf="http://www.fnf.com/xes"> 
       <com.fnf:CardId> 
        <CustId> 
         <SPName/> 
         <CardLogicalData> 
          <CardEmbossNum>00000000000000000</CardEmbossNum> 
         </CardLogicalData> 
        </CustId> 
       </com.fnf:CardId> 
       <com.fnf:CardStatus> 
        <StatusCode>0</StatusCode> 
        <StatusDesc>Fail</StatusDesc> 
       </com.fnf:CardStatus> 
      </com.fnf:CardRec> 
     </com.bac:CardAddRs> 
    </BankSvcRs> 
</IFX> 

ответ

2

вы должны либо объявить необходимые пространства имен в любой API вы используете, а затем использовать что-то вроде:

/ns:IFX/ns:BankSvcRs/com.fnf:CardId/ns:Status/ns:Severity 

Или вы можете сделать что-то вроде этого:

/ns:IFX/ns:BankSvcRs/*/ns:Status/ns:Severity 

Или, если вы действительно хотите:

/ns:IFX/ns:BankSvcRs/*[local-name() = 'CardAddRs']/ns:Status/ns:Severity 

Хотя лично я думаю, с помощью local-name() как способ обойти правильно использование пространств имен не является хорошей практикой.

Вы не показали нам код, в котором вы используете этот XPath, так что это примерно такая же помощь, как я могу предоставить без дополнительной информации.

+0

большое спасибо. Его работа отлично :) –