【问题标题】:How to get the Attribute name of a XML Node - GDataXMLNode如何获取 XML 节点的属性名称 - GDataXMLNode
【发布时间】:2026-02-16 12:40:01
【问题描述】:

如何在GDataXMLNode中获取XML节点的属性名。

我需要从中获取“anyAttribute”和“anyAttribute2”...

<anynode anyAttribute="anyvalue" anyAttribute2="123"/>

有一种方法,还是我应该尝试其他选择?

【问题讨论】:

    标签: objective-c ios xml xml-parsing gdata-api


    【解决方案1】:

    有一个名为“AQXMLParser”的开源组件具有此功能。试一试: http://www.alexcurylo.com/blog/2009/06/09/code-aqxmlparser/

    【讨论】:

      【解决方案2】:

      这是一个示例代码:

        GDataXMLElement *anynode = [GDataXMLNode elementWithName:@"anynode"];
        GDataXMLElement *anyAttribute = [GDataXMLNode attributeWithName:@"anyAttribute" stringValue:@"anyvalue"];
        GDataXMLElement *anyAttribute2 = [GDataXMLNode attributeWithName:@"anyAttribute2" stringValue:@"123"];
        [anynode addAttribute:anyAttribute];
        [anynode addAttribute:anyAttribute2];
      

      这段代码创建了节点:

        <anynode anyAttribute="anyvalue" anyAttribute2="123"/>
      

      现在从 anynode 中提取属性值:

        NSString *attribute1 = [anynode attributeForName:@"anyAttribute"].stringValue;
        NSString *attribute2 = [anynode attributeForName:@"anyAttribute2"].stringValue;
      

      【讨论】:

      • 回答,我做了一个不好的问题......我知道如何提取属性和节点的值。我需要从节点获取属性的名称或属性列表。不要担心这个问题...我更改了我的 XML 文件。又是 Ty。
      【解决方案3】:

      在您的情况(以及大多数其他情况)中,GDataXMLNode 实际上是 GDataXMLElement 子类的实例,因此只需将 GDataXMLNode 向下转换为 GDataXMLElement 并通过它们的名称(如果您知道它们)或通过属性的属性提取属性GDataXMLElement 实例。

      【讨论】: