无论我做什么,TBXML根元素都是null

时间:2011-07-13 22:33:53

标签: iphone objective-c ios cocoa-touch

将我的大脑震撼了几个小时,试图弄清楚这个。 TBXML必须设置rootXMLElement才能开始遍历和解析数据。

无论我做什么,当我NSLog时,它都是空的。

以下是XML的示例:

<?xml version= "1.0" encoding="UTF8"?> 
<patients>
    <patient>
        <patientNumber>1234</patientNumber>
        <nameFirst>Jason</nameFirst>
        <!--more properties of a patient-->
    </patient>
    <patient>
        <patientNumber>5542</patientNumber>
        <nameFirst>Gary</nameFirst>
        <!--more properties of a patient-->
    </patient>
</patients>

到目前为止我使用的代码:

NSURL *xmlURL = [NSURL URLWithString:destPath];
TBXML *tbxml = [TBXML tbxmlWithURL:xmlURL];

NSLog将tbxml.rootXMLElement显示为null。

注意的其他细节:

  1. 我使用ruby脚本从XML文件中删除任何非ASCII字符。该应用程序不再需要任何其他内容。
  2. 我认为问题可能是XML文件不是UTF-8,所以我使用bash命令iconv将其从ASCII转换为UTF-8。也没用。
  3. 非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

它看起来像是一个本地XML,基于你正在预处理它的事实。当您将本地文件路径作为URL处理时,需要使用fileURLWithPath:才能使其正常工作。所以你需要这样做,

NSURL *xmlURL = [NSURL fileURLWithPath:destPath];
TBXML *tbxml = [TBXML tbxmlWithURL:xmlURL];