我试图从下面提到的代码中检索"number“。
<iq from='coven@chat.shakespeare.lit'
id=‘XYZ'
to='hag66@shakespeare.lit/pda'
type='result'>
<query xmlns='urn:XYZ:number'>
<number xmlns=‘urn:XYZ:number'>4</number>
</query>
</iq>我尝试了以下方法,但它总是以"0“的形式更新,但我可以看到iq的数字与0不同。
NSXMLElement *query = [iq childElement];
NSXMLElement *number = [query elementForName:@“number"];
NSInteger number = [number attributeIntegerValueForName:@"number
"];发布于 2014-01-21 18:30:37
尝试:
NSXMLElement *number = [query elementForName:@"number" xmlns:@"urn:XYZ:number"];名称空间很重要。这使用了由NSXMLElement添加的XMPPFramework类别。更多细节这里。
您的XML也可以简化如下:
<iq from='coven@chat.shakespeare.lit'
id=‘XYZ'
to='hag66@shakespeare.lit/pda'
type='result'>
<query xmlns='urn:XYZ:number'>
<number>4</number>
</query>
</iq>query元素上的命名空间适用于所有子元素。
https://stackoverflow.com/questions/21243709
复制相似问题