使用 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 7 中的 AWSS3TransferManagerUploadRequest

    我今天升级到 Xcode 7 Swift 2 0 我的项目正在使用 CocoaPods 我正在 POD 文件中导入所有与 AWS 相关的文件 我已经设置了桥接标头 并导入了 Amazon 告诉我的所有文件 在升级到 Swift 2 0 之前
  • iOS Swift 和 reloadRowsAtIndexPaths 编译错误

    我与 xCode Swift 陷入僵局并刷新 UITableView 的单行 这条线有效 self tableView reloadData 而这条线没有 self tableView reloadRowsAtIndexPaths curr
  • 简单的 Xml - 元素的顺序未保留?

    我在我的 Android 应用程序中使用 SimpleXml 2 6 1 尽管文档 http simple sourceforge net download stream doc javadoc index html org simplef
  • 从 IOS 应用程序注销的完美方法是什么?

    下面的代码可以工作 但有一个错误 场景是 我首先登录进入应用程序系统 登录成功后 应用程序将设置 UserDefaults UserId 之后 我可以使用存储的 UserId 导航应用程序视图 一旦我进入设置和选项卡注销 这将清除 User
  • 在 IOS 中从 iPhone 删除资产(图片或视频)

    我正在开发一个 Iphone 应用程序 我可以使用 Assetslibrary 枚举资产并将它们加载到表视图中 用户可以在应用程序中删除一行 图片 视频 但如何直接从我的应用程序更新 Iphone 相册 否则 刷新时 表视图将重新加载之前删
  • Booking.com酒店管理API

    我拥有一家酒店 并在 booking com 上查看了 API 因为我想创建自己的前端界面来更新我的酒店房价 房间数 以及通过该 API 上传图片 更新酒店描述 然而 我唯一能找到的是一个 API 供联营公司以一定的价格获取特定位置的酒店等
  • WKWebView 未打开自定义 URL 方案(js 在新窗口中打开自定义方案链接)

    我有一个WKWebView在我的应用程序中 我不使用UIWeb视图 因为由于某种奇怪的原因 它无法正确打开包含大量 JS 代码的网页 当我点击链接时自定义 url 方案 scm 它确实nothing My code void viewDid
  • 使 iOS 应用程序与 iPhone 6 和 iPhone 6 尺寸兼容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个应用程序 其中使用 xib 进行布局 目前我使用两种不同的 xib 一种用于iPhone4 320 480 一种用于iPh
  • 启动深色或浅色模式的图像

    如何为深色模式和浅色模式选 择一组不同的启动图像 我有一个 LaunchImages 集 当应用程序启动时 会显示一个图像 对于浅色模式 这似乎不错 但是如果我尝试在设置为深色模式 iOS 13 的设备上打开我的应用程序 则该图像看起来很糟
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • iOS:滚动视图仅在键盘出现后才起作用

    我制作了滚动视图 其中有很多文本字段 我添加了更新的 TPKeyBoardAvoidingScrollView 并将其添加到滚动视图的文件所有者中 我在 h 文件中添加了插座 在 m 文件中综合并添加了行 self view addSubv
  • 将 transaction.commit_manually() 升级到 Django > 1.6

    我继承了为 Django 1 4 编写的应用程序的一些代码 我们需要更新代码库以使用 Django 1 7 并最终更新到 1 8 作为下一个长期支持版本 在一些地方它使用旧风格 transaction commit manually and
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • CakePHP Xml 实用程序库触发 DOMDocument 警告

    我正在使用 CakePHP 在视图中生成 XMLXML核心库 http book cakephp org 2 0 en core utility libraries xml html xml Xml build data array ret
  • Cordova 在 iOS 中显示警告“线程警告:[您的函数]花了 [n] 毫秒”

    THREAD WARNING Console took 81 661865 ms Plugin should use a background thread 在跑步的时候iOS 手机差距项目 对于一些剩余的插件 例如地理位置和文件系统 也是
  • 如何在 Spring 属性中进行算术运算?

  • 最适合“正在进行的作业”的 HTTP 状态代码

    向客户端提供的最合适的 HTTP 状态代码是什么 表示 您的请求很好 但仍在进行中 请稍后在完全相同的位置回来查看 例如 假设客户端提交初始请求以启动繁重的查询 服务器立即返回一个 URL 客户端可以定期轮询该 URL 以获取结果 如果客户
  • iOS 视图控制器内存在被关闭后未释放

    当用户单击按钮时 它会显示一个带有两个视图控制器的新选项卡栏视图控制器 我是这样做的 ACLevelDownloadController dvc ACLevelDownloadController alloc initWithNibName
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘

随机推荐

  • 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 响应