一、问题描述

在处理XML的过程中,在项目中手动创建名为“data.xml”的文件,加入网上找的内容

<?xml version="1.0" encoding="utf-8"?>
<Dogs>
<Dog id="001">
<name>Ryan</name>
<age>26</age>
</Dog>
<Dog id="002">
<name>Tang</name>
<age>27</age>
</Dog>
<Dog id="003">
<name>Lee</name>
<age>24</age>
</Dog>
</Dogs>

然后xcode加载data.xml中的内容

 -(void)readXML
{
//xml文件的路径
NSString *dataURL = [[NSBundle mainBundle]pathForResource:@"data" ofType:@"xml"];
//读取xml内容
NSData *data = [NSData dataWithContentsOfFile:dataURL];
GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data options: error:nil];
//得到根标签元素Dogs
GDataXMLElement *rootElement = [doc rootElement];
//得到根标签元素下的子标签元素Dog
NSArray *elementsForDogs = [rootElement elementsForName:@"Dog"];
//遍历
for (GDataXMLElement *element in elementsForDogs) {
//id节点
GDataXMLNode *node = [element attributeForName:@"id"];
//id节点值
NSLog(@"Dog的id为%@", [node stringValue]);
//元素name
GDataXMLElement *elementName = [[element elementsForName:@"name"] firstObject];
NSLog(@"名字为%@", [elementName stringValue]);
//元素age
GDataXMLElement *elementAge = [[element elementsForName:@"age"] firstObject];
NSLog(@"年龄为%@", [elementAge stringValue]);
}
}

执行没有任何结果。

二、问题分析

估计原因是elementsForDogs元素个数为0,没有进入for循环。打印elementsForDogs的元素总数,结果真的是0。然后往上查找,发现原来是dataURL值为nil。为什么NSBundle的pathForResource:ofType: 返回值为nil?

找到当前app,右键点击“显示包内容”,发现目录下不存在data.xml文件

三、问题解决

告诉编译器把data.xml拷贝到05_JSON和XML_XML处理.app。

1.选择“项目”-->“TARGETS”下的05_JSON和XML_XML处理。

2.然后点击"Build phases",选择“Copy Bundle Resources”。

3.点击“+”添加data.xml。

4.“Copy Bundle Resources”包含data.xml了。

最后重新运行,结果出来了

NSBundle的pathForResource:ofType: 返回值为nil问题的更多相关文章

  1. iOS [[NSBundle mainBundle] pathForResource:@"" ofType:@""]无法获取到文件

    将一个文件导入到工程中后,用[[NSBundle mainBundle] pathForResource:@"" ofType:@""]来获取到该文件时,一直无 ...

  2. [[NSBundle mainBundle] pathForResource:fileName ofType:]获取文件路径不成功

    目标文件明明已经加入项目了,但是使用[[NSBundle mainBundle] pathForResource:fileName ofType:]来获取文件路径的时候却为nil: 遇到这个问题大家需 ...

  3. [[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"] 找不到对应的文件解决方法

    最近在使用[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]时,找不到其对应的文件,文 ...

  4. Autorelease返回值的快速释放机制

    + (instancetype)createSark { return [self new];}// callerSark *sark = [Sark createSark]; 编译器改写成了形如下面 ...

  5. 【Go入门教程3】流程(if、goto、for、switch)和函数(多个返回值、变参、传值与传指针、defer、函数作为值/类型、Panic和Recover、main函数和init函数、import)

    这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和 ...

  6. GetLastError()函数返回值及含义

    GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置.函数并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值, ...

  7. IOS开发中返回值为null时的处理

    在IOS开发中,如果得到了null返回值很容易造成程序崩溃,null和nil的判断方法不同. nil的判断方法: if(data==nil) {      NSLog(@"data is n ...

  8. [转]WinExec、ShellExecute和CreateProcess及返回值判断方式

    [转]WinExec.ShellExecute和CreateProcess及返回值判断方式 http://www.cnblogs.com/ziwuge/archive/2012/03/12/23924 ...

  9. Delphi检查GetElementByID返回值的有效性

    Delphi 可以像JavaScript 脚本语言一样使用GetElementByID方法访问网页中指定ID的元素,一般要配合TWebBrowser组件使用.首先使用TWebBrowser浏览网页,然 ...

随机推荐

  1. CFgym Board Queries (旋转、翻转简化)

    http://codeforces.com/gym/100497 codeforces 2014-2015 CT S02E04: Codeforces Trainings Season 2 Episo ...

  2. 清北暑假模拟day1 生活

    /* 数字三角形,要求第K大的值,可以推知,如果得知k的范围,那么一定是在上一行可转移状态的对应范围内(反证法可以证明),这个在背包九讲里也有提及 */ #include<cstdio> ...

  3. HDU 2010

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int Is_SXH(int num); int main() { int in1, ...

  4. ZOJ 3711 Give Me Your Hand

    Give Me Your Hand Time Limit: 2 Seconds      Memory Limit: 131072 KB      Special Judge BellyWhite a ...

  5. 微信电脑版即将到来了 安装QQ浏览器微信版体验吧

    之前说过在手机上微信打字慢,tx最终还是想开了,最近TX邀请测试微信电脑版,想要尝鲜的朋友可以去exp.qq.com申请QQ浏览器微信版体验,不过体验将要结束了,相信正式版很快就要出来了.[微信网页版 ...

  6. 微信电话本可免费拨打网络电话 通话一分钟约300K流量

    微信电话本新版本于昨日晚间发布,这是一款智能通讯增强软件,通话双方都下载此APP并开通免费通话功能就能使用微信电话本拨打免费网络电话,在对方无法接通情况下还能将音频转向语音信箱,微信电话本目前支持An ...

  7. jQuery的$.ajax示例

    $.ajax({ url: 'index.php?module=products&submod=product_experience_manage&method=ajaxGetSele ...

  8. linux 脚本命令匹配并获取下一行数据

    三种方式: 匹配“Title”并打印出匹配行的下一行 grep  -A 1 'Title'  urfile awk '/Title/{getline a;print $0"\n"a ...

  9. [KOJ6997]旅行商问题二

    [COJ6997]旅行商问题二 试题描述 Bob是一名旅行商,Bob同时也是一个哲学家,他深知到了一个地方就要掏出钱包把所有景点都玩到.一个城市有N个景点,其中N-1条无向道路链接成一个连通图.Bob ...

  10. java读取文件

       一个字节一个字节地读取                  File file =          InputStream inputStream =                       ...