0

xml 応答 (asmx Web サービス) を含む文字列があります。APXML ライブラリを介して xml を解析しています。ボディタグを与えるルート要素を取得するとき、ボディタグは必要ありません。ルートタグと子タグよりも実際のデータを取得したい..これからデータを取得する方法を教えてください..ありがとう..私のxmlは

 <?xml version="1.0" encoding="UTF-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
 <loginFunctionResponse xmlns="http://tempuri.org/">
  <loginFunctionResult>
   <Root xmlns="">
    <child>
     <id>52</id>
     <name>mohsin</name>
   </child>
  </Root>
 </loginFunctionResult>
</loginFunctionResponse>
</soap:Body>
</soap:Envelope>

私のコードは..

NSString *resultString=[[NSString alloc] initWithBytes:[resultData bytes] length:resultData.length encoding:NSUTF8StringEncoding];
NSLog(@"result string: %@",resultString);

APDocument *doc = [APDocument documentWithXMLString:resultString];

APElement *rootElement = [doc rootElement];
NSArray *childElement = [rootElement childElements];

for (APElement *chile in childElement) {


    NSLog(@"chid name %@",chile.name);
    NSLog(@"chile value %@",chile.value);
}

それは私にこの結果を与える..

 chid name soap:Body
 chile value (null)
4

1 に答える 1

2

childElementsは再帰的ではなく、ルート要素の直接の子孫のみを返します。

したがって、この場合、唯一の子要素は tag です。この要素には<loginFunctionResponse xmlns="http://tempuri.org/">コンテンツがなく、子が 1 つしかないため、値は null です。

ツリー全体を解析したい場合はchildElements、葉 (子のない要素) に到達するまで、すべての子を再帰的に呼び出す必要があります。

于 2013-03-29T06:31:30.643 に答える