iOS 上的 NSXMLParser,给定 xml 文件如何使用它

2023-12-12

我想知道如何使用 NSXML 解析器。 假设我有一个简单的 xml 文件,其中包含以下元素:

<Today>
<Date>1/1/1000</Date>
<Time>14:15:16</Time>
</Today>

我如何使用 NSXMLParser 来解析 XML 文件(顺便说一句,它在本地桌面上),检查每个元素并将它们存储在一个数组中以便稍后显示/使用?

我正在浏览一些有关它的文档,但我不知道如何使用解析器 我知道有3种方法(或更多,如果我错了请纠正我)可以被覆盖 -..etc didStartElement -..etc didEndElement -..等找到的人物


最简单的事情就是做这样的事情:

NSXMLParser *xmlParser = [[NSXMLParser alloc]initWithData:<yourNSData>];
[xmlParser setDelegate:self];
[xmlParser parse];

请注意,setDelegate: 将委托设置为“self”,即当前对象。因此,在该对象中,您需要实现您在问题中提到的委托方法。

因此,在代码的下方,粘贴:

    - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
        namespaceURI:(NSString *)namespaceURI
       qualifiedName:(NSString *)qualifiedName 
         attributes:(NSDictionary *)attributeDict{

       NSLog(@"I just found a start tag for %@",elementName);
       if ([elementName isEqualToString:@"employee"]){
       // then the parser has just seen an <employee> opening tag
       }         
     }

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
NSLog(@"the parser just found this text in a tag:%@",string);
}

等等等等

当您想要执行诸如将变量设置为某个标记的值之类的操作时,会有点困难,但通常是使用名为“的类变量”来完成的BOOL inEmployeeTag“您在中将其设置为 true (YES)didStartElement: 方法和 false 中didEndElement: 方法 - 然后检查它的值foundCharacters方法。如果是,则将 var 分配给 string 的值,如果不是,则不分配。

richard

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

iOS 上的 NSXMLParser,给定 xml 文件如何使用它 的相关文章

  • 自定义信息窗口上的按钮未接收 ios 中的操作

    我在 iOS 应用程序中使用 Google 地图 并实现了一个自定义信息窗口来显示标记的标题 现在 我在该自定义信息窗口上添加了一个按钮 但我的问题是按钮操作方法没有被调用 自定义信息窗口 h import
  • iOS 上 Safari 中的 shift 键

    有没有办法在javascript中判断手机键盘上是否按下了shift键 并将其与大写锁定 按两次shift键 区分开来 一些事实 首先 让我们看一下有关 iOS 键盘的一些事实 我假设您已经知道了 当您进入键盘模式时 shift键始终处于激
  • iOS 无法获取人物图像

    我有两个 tableViewController 第一个有联系人列表 另一张显示详细的人员信息 第一个tableViewController的一段代码 ABAddressBookRef addressBook ABAddressBookCr
  • 如何将 .ipa 转换为 .app 文件?

    每个人 我有一些 ipa 文件 想要转换为包含 app 包的存档文件 我试图这样做 但我没有办法 有什么办法可以做到这一点吗 请帮我 将 ipa 重命名为 zip 然后提取即可
  • 如何从 Xcode 4.5 卸载 iOS 5.0 模拟器

    我已经安装了 Xcode 4 5 由于我编写应用程序是为了好玩 我不打算支持旧版 iOS 版本 并且为了节省 500 GB iMac 上的空间 是否有办法删除它 尝试从 Xcode 包中支持的平台中删除 iPhone iPhoneSimul
  • iOS FacebookSDK + 解析 SDK + GoogleMaps SDK

    我搜索了很多 然后我意识到 ObjC标记那个GoogleMapSDK需要 但不能很好地配合ParseSDK and FacebookSDK 所以我阅读了所有的 stackoverflow 答案并尝试解决我的问题 问题还没有解决 我执行的步骤
  • 将新的 XElement 添加到 Xdocument

    我有以下代码 它成功写入 XML 文件 但是 由于进行了 tagRegistry Save 调用 它每次都会被覆盖 如何将新的 XElement 添加到现有文件 目前该文件只是被覆盖 public void saveTag if File
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • Grand Central Dispatch (GCD) 调度源标志

    我最近不再使用 to GCD 调度来源 https developer apple com documentation dispatch 1385630 dispatch source create监视文件更改 效果很好 API 也变得更加
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • UIScrollView 与 UITabBarController 切断

    我有一个 UIScrollView 我将其放置在视图中 界面生成器文档 xib m h 但是 UIScrollView 的下半部分被剪切 并且由于我有一个 UITabBarController 而没有显示其下半部分 我在 appdelega
  • AdMob 和 DFP 广告联盟之间的区别?

    我正在尝试在我的 iOS 应用程序上显示横幅广告和插页式广告 但现在我对广告网络感到困惑 AdMob 与 DFP 有何不同 哪一种更适合投放广告 有人可以提供帮助吗 提前致谢 AdMob 是一个广告网络 作为发布商 您可以通过展示从网络投放
  • 如何从第二个视图弹回到根视图?

    我使用 2 将 3 个视图 根视图 第 1 个视图 第 2 个视图 连接在一起modal在 Apple Watch 故事板中继续 1 在根视图中 按下 保存 按钮后 将显示第一个模态视图 2 在第一模态视图中 一旦按下 500 按钮 将显示
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • 如何制作像 Facebook 应用程序一样的登录屏幕?

    如何制作像 Facebook 应用程序一样带有 电子邮件 和 密码 文本字段的登录屏幕 Facebook登入 http extdesenv com wp content uploads 2012 05 facebook login ios
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲
  • TestFlight 安装的应用程序因 Swift 包管理器依赖项而崩溃

    我们已经迁移了一些 CocoaPod 依赖项 以便在 Xcode 11 中使用 Swift Package Manager 进行构建和链接 但是 每当我们将应用程序提交到 AppStore Connect 并使用 TestFlight 进行

随机推荐

  • 返回鼠标Tkinter下图像像素的RGB颜色

    我正在尝试从图像中鼠标单击的位置获取 RGB 值 我试图仅使用 Tkinter 来完成这一切 以保持代码简单 并且由于某种原因我无法正确安装 PIL 并且我不知道这是否可能 感谢您的帮助 我很困惑 from serial import im
  • 使用 AlertDialog 的模态对话框功能

    我想保留AlertDialog直到用户按下其上的任何按钮为止 换句话说 即使用户按下任何其他区域 如其父区域 或按下后退按钮 对话框仍必须保持焦点 请告诉我要使用哪种 Android 4 0 API 方法 提前非常感谢 use setCan
  • 在 BitBucket 上为许多用户和补丁使用 Mercurial 补丁队列存储库

    很抱歉这个由多个部分组成的问题 但我很难理解将 Mercurial 补丁队列与 BitBucket 结合使用的预期方法 而且 Google 也没有提供太多帮助 我希望描述一些 MQ 概念的一个答案能够同时涵盖许多问题 我读过了http ch
  • jQuery 可排序取消事件(如果无效)

    我有一个可排序的列表 在开始排序之前 我想检查该列表的所有元素是否有效 如果没有 请取消活动并保持列表不变 您可以在这里找到代码http jsfiddle net DZYW5 4 当我使用它时 事件被取消 但元素被删除 start func
  • 如何在 Helm for Kubernetes 中循环不同的模板?

    我想部署具有不同图像 端口等但具有非常相似的其他属性的多个 Pod 部署 所以我想声明一个deployment yaml文件看起来像这样 range Values types apiVersion extensions v1beta1 ki
  • 如何将这些功能组合起来而不重复呢?

    由于所有 3 个产品功能都有相同的产品列表 我如何将这些多个功能合并为一个 这样我就可以避免在这里重复 所有功能都有产品列表 只是货币不同 如何将这三个功能合二为一 有人可以建议我吗 谢谢 function ProductDataRende
  • OpenCV:删除图像的背景

    我正在使用 Opencv 和 python 来检测形状 然后裁剪它们 我已经成功地做到了这一点 但是现在我正在尝试拍摄裁剪后的图像并删除它们的背景 该图像内部有一个圆圈 周围是灰色 它可以是灰色的 甚至可以是不止一种颜色 如何删除圆形边框周
  • 将 TextView 与进度条的进度对齐

    我怎样才能对齐TextView随着水平的进展ProgressBar 我想放一个TextView就在进度位置的上方ProgressBar 进度可能会改变 另外 我想要TextView尽管文本长度可能会改变 但要保持在一行中 在包含 TextV
  • 使用C#程序启动Dll

    我有一个 C 表单应用程序 我创建了一个 Dll 现在我想使用该程序启动该 dll 我该怎么做 include
  • Tkinter 使用菜单栏命令无意递归...原因?

    我正在尝试使用Python GUI制作tkinter 我需要一个菜单 项来打开主窗口的另一个副本 我尝试执行以下代码 当我运行该程序时 它冻结了一点 然后打开了大量窗口 最后打印的错误消息如下 我有两个问题 如何完成使 新建 按钮打开新窗口
  • 如何在 Linux 无头服务器上安装 chrome 扩展

    我需要在无头服务器上安装 chrome 扩展 一种方法是使用组策略 我正在寻找其他方法来做到这一点 对于 Firefox 我只需将我的 XPI 扩展 放在配置文件目录 扩展文件夹中 Firefox 就会选择该扩展 我想知道对于 chrome
  • 如何交错两个不同长度的列表?

    我想写一个函数twolists给出的结果如下 outcome twolists w x y z print outcome w x y z outcome twolists 0 1 w x print outcome 0 w 1 x out
  • 如何在 Java 9 统一日志记录中使用带有冒号的 Windows 文件名?

    java11 Xlog gc file c max txt version 0 002s error logging Invalid decorator max txt Invalid Xlog option Xlog gc file c
  • 编写返回libc攻击,但libc加载到内存中的0x00处

    我正在为我的系统安全课程编写返回 libc 攻击的文章 首先 存在漏洞的代码 vuln c include
  • 如何访问 List 的数组元素

    我有个问题 我有一个 Java 列表 其中填充了不同的值 例如 我有 List
  • 加载数据到文件中,用逗号处理字段

    使用load data infile时如何处理带逗号的字段 我有这个查询 sql LOAD DATA LOCAL INFILE file INTO TABLE sales per pgs FIELDS TERMINATED BY LINES
  • Ruby Rack:启动和拆卸操作(东京内阁连接)

    我在 Rack 上的 Sinatra 中构建了一个非常简单的 REST 服务 它由 3 个 Tokyo Cabinet Table 数据存储提供支持 这些数据存储具有需要打开和关闭的连接 我有两个直接用 Ruby 编写的模型类 目前它们只是
  • Document.querySelector() 未显示所有元素

    我是一个新手 尝试设计相关 CSS 选择器和 JSPath 来运行我的自动化脚本 在路上 我发现这两者的返回语句是不同的 请检查下面的示例 有人可以告诉我需要在 JSPath 中进行哪些更改才能保持结果与相对 CSS 选择器相同 相对 CS
  • Bootstrap 崩溃和 ui-router

    我有问题ui router并使用引导崩溃 div class panel panel default div a href collapseOne Click me a div div class panel collapse collap
  • iOS 上的 NSXMLParser,给定 xml 文件如何使用它

    我想知道如何使用 NSXML 解析器 假设我有一个简单的 xml 文件 其中包含以下元素