从NSXMLElement中检索值

时间:2014-01-20 20:39:07

标签: ios iphone xmpp nsxmlelement

我正在尝试从下面提到的代码中检索“数字”。

<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
"];

1 个答案:

答案 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元素上的命名空间适用于所有子元素。