2011-07-29 17 views
0

XMLReaderの出力に関する問題があります。これは、SOAP-ResultをNSDictionaryに解析できるはずです。iphone XMLReader SOAP-Response parsing

私は、次の取得結果を経る:

キー:のSOAPEnvelope、値:{最後までXMLファイルの残りの部分、すべてのタグと、長い文字列のようです}

すべてのXML-TagsをキーとしてNSDictionaryを取得する予定があるので、私はここで間違っていますか?

編集: - 私は仕事と日以来、これを理解しようとしているので、私は間違った方向に完全にすることができ、その可能ならば... here's私のXML:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
    <GetData2Response xmlns="http://tempuri.org/"> 
     <GetData2Result> 
      <NoOfObjectsDetected>1</NoOfObjectsDetected> 
      <RectanglesForPicture> 
       <Rectangle> 
        <Location> 
         <X>90</X> 
         <Y>14</Y> 
        </Location> 
        <Size> 
         <Width>352</Width> 
         <Height>352</Height> 
        </Size> 
        <X>90</X> 
        <Y>14</Y> 
        <Width>352</Width> 
        <Height>352</Height> 
       </Rectangle> 
      </RectanglesForPicture> 
      <ReturnMessage>Juhu!</ReturnMessage> 
     </GetData2Result> 
    </GetData2Response> 
</soap:Body> 

私はNoOfObjectsDetectedをintで言うことができますか?正確に何をする必要がありますか? (It's愚かな、私は知っている...しかし - 私は...気圧THXを失った)ここで

答えて

0

はNSXMLParserの助けを借りて解析していますか?ここに方法があります。 xmlの内容を格納する変更可能な配列を作成します。デリゲートメソッドでは、次の操作を実行します。

nsmutablearray noOfObjetcsArray; nsstring elementNameStr;

- (ボイド)パーサー:(NSXMLParser *)パーサdidStartElement:(NSStringの*)がelementName名前空間URI:(NSStringの*)名前空間URI 修飾名:(NSStringの*)QNAME属性:(NSDictionaryの*)atributeDict

{

IF([がelementName isEqualToString: "NoOfObjectsDetected" @])

{

noOfObjetcsArray = [NSMutableArrayのALLOC] initwithcapacity:0]。

elementNameStr = elementName;

}

}

- (ボイド)パーサー:(NSXMLParser *)パーサfoundCharacters:(NSStringの*)ストリング

{

([elementNameStr isEqualToString場合:NoOfObjectsDetected "@ "])

{

[noOfObjetcsArray addObject:string]; 
012解析が完了したときに

}

}


Uは、配列の内容を取得します。 uはint型の値としてそれをしたいので、uは、この値を使用してどこに、ジュースを与える:

[[noOfObjetcsArray objectAtIndex:0] intValue]

を、この値をintに文字列を変換します。それはあなたが価値を得ることができる方法です。それを試してみてください。

:)

}

+0

それはそれです!ありがとう! – Schwennz

0
[self.elementsValues setObject:self.currentElementValue forKey:elementName]; 

elementsValuesはNSMutableDictionaryのタイプです。 currentElementsValueは、現在のタグの値です。 elementNameは現在のタグです。これが明確でない場合は、無料で質問してください。

+0

すべての最高の - 私は、時代から取り組んでこれを理解しようとしているので、私は間違った方向に完全になるので、可能な場合があります... here's私のコード: – Schwennz

+0

申し訳ありませんが、編集されたXML – Schwennz

+0

まずに関して上には、XML parsing.httpについてのチュートリアルを読んでする必要があります。//stackoverflow.com/questions/2005448/how-to-use-nsxmlparser-to-parse-parent-child-elements-私がやったことは、持っている-同じ名前を – Harsh