使用 GDataXML 获取 XML 响应值

2024-01-10

在 HTTP Post 之后,我检索如下 xml 响应:

<result value="OK">
    <user id="1">
            <name>admin</name>
            <rank>0</rank>
            <picture_count>0</picture_count>
            <comment_count>0</comment_count>
            <has_profile>1</has_profile>
    </user>
</result>

我想提取用户 ID,但我不知道该怎么做。 我尝试过GDataXML解析器,因为这已经集成在我的项目中,但是 我不知道如何获取 html 标签内的值。

我希望你可以帮助我。如果没有解决方案XMLParser,你会推荐正则表达式吗?在这种情况下,我希望有一个正则表达式的解决方案,我对此不太擅长:)

提前致谢。


这是我用来检索用户属性的代码。有用。

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"xml"];

NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:path];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData 
                                                           options:0 error:&error];

NSArray *userElements = [doc.rootElement elementsForName:@"user"];

for (GDataXMLElement *userEl in userElements) {

    // Attribute
    NSString *attribute = [(GDataXMLElement *) [userEl attributeForName:@"id"] stringValue];        
    NSLog(@"attribute for user is %@", attribute);

    // Name
    NSArray *names = [userEl elementsForName:@"name"];
    if (names.count > 0) {
        GDataXMLElement *name = (GDataXMLElement *) [names objectAtIndex:0];

        NSLog(@"name for user is %@", name.stringValue);
    }

    // Rank
    NSArray *ranks = [userEl elementsForName:@"rank"];
    if (ranks.count > 0) {
        GDataXMLElement *rank = (GDataXMLElement *) [ranks objectAtIndex:0];

        NSLog(@"rank for user is %@", rank.stringValue);
    }

    // Do the same for other tags...     
}

[doc release];
[xmlData release];

文件 test.xml 与您从 xml 响应中检索到的文件相同。所以你需要更改这段代码的第二行。也许你可以打电话initWithData类的方法NSData.

您可以将此代码放在您想要的位置。也许您可以创建另一个类作为集中式解析器。希望能帮助到你

EDIT

将这两行放在前面以供说明。

NSString *valAttribute = [(GDataXMLElement *) [doc.rootElement attributeForName:@"value"] stringValue];        
NSLog(@"value attribute for result is %@", valAttribute);

解释很简单。和doc.rootElement您检索整个 xml 文档,来自<result> to </result>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GDataXML 获取 XML 响应值 的相关文章

  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为
  • Unwind segue 的用途是什么以及如何使用它们?

    iOS 6 和 Xcode 4 5 有一个称为 Unwind Segue 的新功能 展开转场可以允许过渡到故事板中场景的现有实例 除了 Xcode 4 5 发行说明中的 这个简短条目之外 UIViewController 现在似乎还有几个新
  • 使用 C# 将 XML 转换为 BSON

    我想将 XML 文件转换为 BSON 然后将 BSON 导入 MongoDB 我进行了搜索 但找不到如何使用 C 来隐藏它 请向我提供使用 C 执行此操作的源代码 今天有同样的问题 这肯定不是最好的解决方案 但是 我在我的项目中以这种方式解
  • 如何在 Objective C 中使用 swift 文件

    我想在 Objective C 代码中使用我的 Swift 文件 我找到了不同的链接 说明了如何操作 我的项目名称是 测试项目 我将 import Test Project Swift h 导入到我的 m 文件中 以在 Objective
  • 如何在 RxSwift 中取消订阅 Observable?

    我想在 RxSwift 中取消订阅 Observable 为了做到这一点 我曾经将 Disposable 设置为 nil 但在我看来 更新到 RxSwift 3 0 0 beta 2 后 这个技巧不起作用 我无法取消订阅 Observabl
  • React-native iOS 不显示图像(pod 问题)

    我正在我的react native应用程序中安装一个包 具体来说 它是来自react navigation的createMaterialTopTabNavigator 但安装成功后 出现崩溃 错误 react navigation mate
  • 自定义相机视图 Swift iOS 8 iPhone Xcode 6.1

    我想在 iPhone 的 View 中使用相机 我不想使用典型的全屏相机视图 而是我自己的 例如 我想在屏幕中间有一个 200x200 的正方形 并且有一个相机预览 在这个方块下面我想要一个拍照按钮 怎么做 我是新手 速度很快 你会想要使用
  • 如何更改 MGLPolyline 的颜色?

    如何更改 MGLPolyline 的颜色 我曾经看过here https stackoverflow com questions 32024464 customize mglpolyline using mapbox但答案不起作用 我还尝试
  • 将更新的图像保存到 PhotoKit 时缺少图像元数据

    我在更新图像的元数据并将其保存回照片库时遇到问题 一切works除了更改后的图像元数据丢失了之前存在的条目 并且我在操作图像或执行照片库更改块时没有收到任何错误 另外 在写回图像之前的字典看起来就像原始字典加上我在调试器中的字典 我的问题是
  • [项目] 的 Xcode 功能警告可能无法正常运行,因为其权利使用占位符团队 ID

    我是 Xcode 新手 刚刚启动一个单视图项目并遇到以下错误 项目名称 完美音调 Xcode版本 10 2 1 操作系统版本 10 14 5 1 Capabilities for Pitch Perfect may not function
  • CLGeocoder reverseGeocodeLocation 返回“kCLErrorDomain 错误 9”

    我正在根据本文开发具有反向地理编码功能的 iOS 应用程序 地理编码教程 http jonathanfield me jons blog clgeocoder example html 但是当我在模拟器上进行这样的测试时 我收到 kCLEr
  • 自定义 URL 方案不是 Outlook 中的链接 (iOS/Android)

    我们的应用程序可以使用自定义 URL 方案启动 例如myapp mainpage param 123 当它作为链接包含在网页中时 此功能有效 而且 在 iOS 上 它可以在平台附带的邮件客户端中运行 用户注册并安装该应用程序后 他会收到一封
  • 使用 AFNetworking 重置基本身份验证凭据

    我正在编写一个 REST 客户端 使用 AFNetworking 并且需要能够在应用程序的单个实例中触发新会话的创建 换句话说 我想 1 通过服务器进行身份验证2 进行一些 REST 调用3 模拟 注销 4 重新与服务器进行身份验证5 进行
  • CoreBluetooth广告检测时间

    这个问题早在10月份就已经讨论过here https stackoverflow com questions 12866551 corebluetooth connection setup time varies quite a bit 1
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • iOS7 XIB 问题。顶部和底部的空白

    我有一个正在设置 ImageView 的视图 自动布局已选中 预览中看起来不错 但当应用程序实际在模拟器上运行时 仅在 iPhone 视网膜 4 英寸模拟器中 顶部和底部显示空白 3 5寸的看起来还不错 使用 iOS7 和 XCODE 5
  • NSData 不接受有效的 base64 编码字符串

    我正在 iOS 7 客户端实现 JSON Web Token 身份验证 效果很好 我的应用程序接收令牌 并可以使用它们对我的服务器进行经过身份验证的调用 现在 我希望我的客户端代码检查令牌的过期日期 以便它知道何时重新进行身份验证 检查 J
  • UILocalNotification 播放自定义声音

    我在我的应用程序中实现了本地通知 但我只是想知道是否有一种方法可以播放不属于 iPhone 应用程序主包的一部分的声音 基本上在我的应用程序中 我希望用户录制生成本地通知时播放的声音 而不是播放预先录制的或默认的声音 据我所知 这是可以实现

随机推荐

  • python中元组的多重嵌套字典

    我有这个元组列表 list of tuples 0 1 1 1 1 1 1 2 1 1 3 1 1 4 0 3 3 3 1 3 3 2 3 3 3 3 3 4 3 3 5 0 4 4 4 1 4 4 2 4 4 3 4 4 4 4 4 5
  • GSON 泛型序列化[重复]

    这个问题在这里已经有答案了 可能的重复 使用 gson 反序列化泛型 https stackoverflow com questions 4364392 deserializing generics with gson 所以我需要做 Typ
  • R Bookdown _bookdown.yml

    Bookdown 有很多配置选项 我发现很难理解如何知道一个选项是否存在 以及这些选项背后的逻辑 具体来说 我发现很难描述什么kind选项进入 bookdown yml鉴于至少还有其他两个地方可以说明选项 In output yml 函数调
  • 伊德里斯热切评价

    In Haskell 我可能会实施if像这样 if True x y x if False x y y spin 0 spin n spin n 1 This 行为符合我的预期 haskell gt if True spin 1000000
  • SCTP 是否像宣传的那样在 Linux 上工作?

    我计划将 SCTP 用于嵌入式 Linux 项目 有人对 SCTP 使用有一些评论吗 主要是一对多模式 它是否优于使用自制的基于 UDP 的等效解决方案 我控制网络环境和所有涉及的设备 所以兼容性不是问题 我广泛使用了 lksctp 发现它
  • 为什么使用 onclick 在 location.reload() 之后返回 false?

    我正在做一个JavaScript我使用该方法的应用程序位置 reload https developer mozilla org en US docs Web API Location reload 方法location reload 是在
  • 将 lambda 函数连接到 QProcess::error 时出错

    在下面的代码中 我想将 lambda 函数连接到 QProcess error 信号 void Updater start QProcess process QObject connect process QProcess error QP
  • 让 Java 应用程序在 Windows 上看起来像原生的 - 如何?

    是否可以使用 Java 创建在 Windows 上看起来原生的应用程序 我不在乎该解决方案是否可移植 因为我只打算针对 Windows 用户 如果这很重要的话 我正在使用 Scala 抱歉缺少详细信息 但我以前从未使用过 Java 所以我什
  • 自然语言处理:找到英语中的脏话吗?

    给定一组标记为词性的单词 我想找到那些在主流英语中属于猥亵内容的单词 我该怎么做 我是否应该列出一个巨大的列表 然后检查列表中是否存在任何内容 我应该尝试使用正则表达式来捕获单个根上的一堆变体吗 如果它更容易 我不想过滤掉 只是为了得到一个
  • 显示 Android Wear 风格的 AlertDialog

    我正在寻找一种在 Android Wear 的设置应用程序中重新创建警报对话框的方法 这是滑动到可解雇的 但相反 我得到的是这样的 只是一个准系统 Android 对话框 如何以Settings apk样式显示AlertDialog 我认为
  • 如何使用 moment.js 库获取时区列表?

    我需要创建所有实际世界时区的 列表 如何获取包含时区列表的数组 首先包括moment timezone与数据 然后你可以使用moment tz names https momentjs com timezone docs using tim
  • 检查序列容器在内存中是否连续

    有没有办法检查序列容器在内存中是否连续 就像是 include
  • VS 2017 中的团队成员团队实用程序部分

    In VS 2015我有这个可以安装一些签入策略 But in VS2017我找不到它 它去哪儿了 它是 Visual Studio Team Foundation Server Power Tools 的一部分 这些尚未针对 Visual
  • 将 Vulkan 与 SFML 结合使用?

    我目前使用 GLFW 进行窗口创建和用户输入 GLFW 只是让我们可以说 glfwWindowHint GLFW CLIENT API GLFW NO API 告诉 GLFW 不支持 OpenGL 它甚至提供了类似的功能 glfwCreat
  • 在 EF 6 中找不到 HasOne

    我对实体框架非常陌生 我正在尝试找出关系 我找到了这段代码 class MyContext DbContext public DbSet
  • 使用quickSort时出现stackoverflowerror,我可以增加堆栈和堆吗?

    java中可以增加栈和堆吗 我用的是BlueJ EDIT 这是代码 Quick Sort Method public static void quickSort int data int first int n int p n1 n2 if
  • iText 样式将 HTML 解析为 PDF

    我的 iText 遇到问题 我已经点击了这个链接 如何将html页面导出为pdf格式 https stackoverflow com questions 10493837 how to export html page to pdf for
  • 错误:无法更改或删除列“x”,因为它已启用全文搜索

    我正在重构旧数据库并删除不再使用的列 数据库曾经有全文索引 因此 某些列被标记为全文 我怎样才能删除它们 Notes 数据库是 MS SQL Server Express 2008 不再安装全文搜索服务 Edit 我努力了 ALTER FU
  • 任务':app:dexDebug'执行失败

    这是我的 build gradle 文件 apply plugin com android application android compileSdkVersion 20 buildToolsVersion 20 0 0 defaultC
  • 使用 GDataXML 获取 XML 响应值

    在 HTTP Post 之后 我检索如下 xml 响应