我正在尝试从下面提到的代码中检索“数字”。
<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
"];
答案 0 :(得分:2)
尝试:
NSXMLElement *number = [query elementForName:@"number" xmlns:@"urn:XYZ:number"];
命名空间很重要。这使用XMPPFramework添加的NSXMLElement类别。更多详情here。
您的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
元素上的命名空间适用于所有子元素。