2016-08-03 13 views
0

すべての子ノードの値を取得しますXPath式は、私は、サンプルのXMLスクリプト次から<em>BalanceResult</em>属性の唯一<strong>特定</strong>値を取得するXPath式を必要とするだけ

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <ars:QueryBalanceResultMsg xmlns:ars="http://www.huawei.com/bme/cbsinterface/arservices" xmlns:arc="http://cbs.huawei.com/ar/wsservice/arcommon" xmlns:cbs="http://www.huawei.com/bme/cbsinterface/cbscommon"> 
     <QueryBalanceResult> 
      <ars:AcctList> 
       <ars:BalanceResult> 
        <arc:BalanceType>C_MAIN_ACCOUNT</arc:BalanceType> 
        <arc:BalanceTypeName>MainAccount</arc:BalanceTypeName> 
        <arc:TotalAmount>80000</arc:TotalAmount> 
        <arc:BalanceDetail> 
         <arc:BalanceInstanceID>702000000000008916</arc:BalanceInstanceID> 
         <arc:EffectiveTime>20160803080942</arc:EffectiveTime> 
         <arc:ExpireTime>20370101010000</arc:ExpireTime> 
        </arc:BalanceDetail> 
       </ars:BalanceResult> 
       <ars:BalanceResult> 
        <arc:BalanceType>C_Bonus_Account</arc:BalanceType> 
        <arc:BalanceTypeName>Bonus Balance Account</arc:BalanceTypeName> 
        <arc:TotalAmount>3900</arc:TotalAmount> 
        <arc:BalanceDetail> 
         <arc:BalanceInstanceID>702000000000008543</arc:BalanceInstanceID> 
         <arc:EffectiveTime>20160803082506</arc:EffectiveTime> 
         <arc:ExpireTime>20191211121212</arc:ExpireTime> 
        </arc:BalanceDetail> 
       </ars:BalanceResult> 
       ....... 
      </ars:AcctList> 
     </QueryBalanceResult> 
    </ars:QueryBalanceResultMsg> 
</soapenv:Body> 

ように私の表現

C_MAIN_ACCOUNT、80000,20370101010000、C_Bonus_Account、3900、20191211121212、...を返します。 210 上記のテンプレート:(円:BalanceType、円:合計サイズ、円:ExpireTime)

以下の式は、タグを含むすべてを返します。また

//*[local-name()='BalanceResult'][*[local-name()='BalanceType']] 

(上記のサンプルでは、​​その2)BalanceResult属性のn個の数があるかもしれないから、私は解決策を考え出すことができませんよ。

ありがとうございました!ありがとうございます。

答えて

2

何について:私はあなたの例から名前空間を削除

<BalanceType>C_MAIN_ACCOUNT</BalanceType> 
<TotalAmount>80000</TotalAmount> 
<ExpireTime>20370101010000</ExpireTime> 
<BalanceType>C_Bonus_Account</BalanceType> 
<TotalAmount>3900</TotalAmount> 
<ExpireTime>20191211121212</ExpireTime> 

注:

//BalanceResult/descendant::*[local-name() = 'BalanceType' or local-name() = 'TotalAmount' or local-name() = 'ExpireTime'] 

これがその結果。

関連する問題