【问题标题】:Retrieving value from NSXMLElement从 NSXMLElement 中检索值
【发布时间】:2014-02-10 04:42:04
【问题描述】:

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

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

【问题讨论】:

  • 我不想做任何假设,但是根据您提供的代码,看起来您正试图从 XML 字符串直接访问 XML 节点。该 XML 是否已被解析?
  • 是的,我在查询和数字中有值..
  • 我只需要知道,如何在上面的代码中检索这个数字“4”......上面的代码 NSXMLElement *number = [query elementForName:@“number”]; 给我 4 ...我需要知道如何从这个元素中取出数字“4”并将其保存在 NSInteger
  • 这有帮助吗:stackoverflow.com/questions/2962027/… - 在问题下的第一个答案中,它们看起来像是遍历元素的属性...

标签: ios iphone xmpp nsxmlelement


【解决方案1】:

试试:

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

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 2014-05-14
    • 1970-01-01
    • 2011-10-02
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多