2

我真的需要通过 TBXML 解析 XML 的帮助。我创建了一个带有一个按钮的演示项目,当用户按下这个按钮时,我只是从另一个类中调用 TBXML 解析函数。我这样做是为了测试我的 TBXMLParsing 函数是否正常工作。它在我的演示项目中运行良好。

最后,在我测试之后,我将该函数复制并粘贴到我的真实项目中,该项目在第一个视图中有一个按钮,当我单击该按钮时,它会调用 TBXMLParsing 函数。换句话说,它与演示项目基本相同。但是,TBXMLParsing 函数不起作用。它不能遍历所有元素。

你有什么想法?谢谢你帮助我。

更新:如果我在真实设备上模拟我的应用程序,它可以工作,但如果我在模拟器上模拟它,它不会遍历 XML。太奇怪了。但是,如果我创建新项目,它确实适用于模拟器。因此,在我的应用程序中一定有一些东西可以阻止解析器 XML。

有任何想法吗?谢谢

更新2:

NSData *data = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://dl.dropbox.com/u/37064335/ex.xml"]];

TBXML *tbxml = [[TBXML alloc] initWithXMLData:data];
[data release];
TBXMLElement *root = tbxml.rootXMLElement;

// if root element is valid
if (root) {
    NSLog(@"root =%s",root->name);

这是让我搞砸的部分。我在演示应用程序中进行了测试,Nslog root=GetUserAccountsRespond 但是在我的应用程序中 Nslog root=(nil-nothing 打印出来)。两个项目基本相同。

4

2 回答 2

4

好的,对于任何可能与我有同样问题的人来说,这是解决方案。问题是因为当我分析(shift+command+B)我的项目时,xcode 在 TBXML.m 中检测到一些“语义问题”。然后我只是按照 xcode 的指南在 TBXML.m 中显示“处理 XML”(第 258,311 行和 458 行)的 3 个地方将“=”更改为“==”。因此 TBXML 不起作用,因为它不能处理输入 XML。这个问题让我疯狂了 2 天。感谢汤姆布拉德利的 TBXML

于 2011-10-28T14:38:09.293 回答
0

我会检查您尝试解析的 XML 文档是否已正确加载,然后再将其传递给 TBXML 进行解码。在我看来,sim 卡上的加载代码有问题。尝试将文件内容输出到日志以验证其正确性。

于 2011-10-27T22:05:31.540 回答