【问题标题】:How to parse a xmpp xml in ios?如何在ios中解析xmpp xml?
【发布时间】:2016-05-05 10:46:35
【问题描述】:

嗨,我正在使用 xmpp,一切正常。但我无法解析以下 xml

<message
xmlns="jabber:client" to="919452544@server" id="859e7-870" type="chat" from="917696997127@server/Smack">
<body>Broadcast</body>
<properties
    xmlns="http://www.jivesoftware.com/xmlns/xmpp/properties">
    <property>
        <name>stream</name>
        <value type="string">8d879bea44f792468d6ecad161d3e545</value>
    </property>
    <property>
        <name>date</name>
        <value type="string">2016-05-05 10:36:25</value>
    </property>
    <property>
        <name>broadcast</name>
        <value type="string">Broadcast</value>
    </property>
</properties>
</message>

在上面的 xml 中,首先我需要检查 body 是否等于广播。 然后我需要解析&lt;name&gt;stream&lt;/name&gt;&lt;value type="string"&gt;8d879bea44f792468d6ecad161d3e545&lt;/value&gt; 如何在上面的 xml 中获取名称和值。 我试过这样,但每次条件都是成功的。下面是我的代码

 if ([message elementsForName:@"name"] ) {
    NSArray *nameArray=[message elementsForName:@"name"];
    NSLog(@"name Broadcast  %@",nameArray);

}

但是nameArray总是空的。请帮帮我

【问题讨论】:

    标签: ios xml xmppframework nsxml


    【解决方案1】:

    试试这个...&lt;name&gt;stream&lt;/name&gt; 是数组元素,&lt;property&gt;... &lt;\property&gt; 是 NSArray

    NSXMLElement *properties = [message elementForName:@"properties"];
    NSArray *property = [properties elementsForName:@"property"];
    NSLog(@"property: %@", property);
    
    //loop to get name and value
    for (NSXMLElement *i in property)
    {
        NSXMLElement *name = [i elementForName:@"name"];
        NSString *n = [name stringValue];
        NSLog(@"name: %@", n);
        // like wise you can get value
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2012-08-11
      • 2019-02-24
      • 2012-08-05
      • 2013-02-08
      • 1970-01-01
      相关资源
      最近更新 更多