通过TBXML解析XML适用于演示项目,但它不适用于我的真实项目
我真的需要通过TBXML解析XML的帮助。 我创建了一个演示项目,其中一个视图有一个按钮,当用户按下这个按钮时,我只需从另一个类中调用TBXML解析函数。 我这样做来测试我的TBXMLParsing函数是否正常工作。它在我的演示项目中效果很好。当我点击那个按钮后,它会调用TBXMLParsing函数,我将它复制并粘贴到我的真实项目中,该项目在第一个视图中有一个按钮。换句话说,它与演示项目基本相同。但是,TBXMLParsing函数不起作用。它不能遍历所有元素。通过TBXML解析XML适用于演示项目,但它不适用于我的真实项目
你有什么想法吗?感谢您的帮助。
更新: 如果我在真实设备上模拟我的应用程序,但如果我在模拟器上模拟它,它不会遍历XML。这太奇怪了。但是,如果我创建新项目,它可以在模拟器上工作。因此,我的应用程序中必须有一些防止解析器XML的东西。
任何想法?谢谢
UPDATE2:
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 =(无 - 没有打印出来)。两个项目基本相同。
好的这里是解决任何可能与我有同样问题的人。问题是因为当我分析我的项目时,xcode在TBXML.m中检测到了一些“语义问题”。然后,我只是按照xcode的指南在TBXML.m中的“Process XML”(第258,311行和第458行)的3个地方将“=”更改为“==”。因此,TBXML不起作用,因为它无法处理输入XML。这个问题让我疯狂了2天。感谢汤姆布拉德利TBXML
谢谢 - 这也帮助了我 - 我让xCode“修复”文件太好了:)回答: –
@ JHHoang.Thanks ..我也疯了......但这固定了它。 – RookieAppler
我会在将它传递到TBXML进行解码之前,检查您尝试解析的XML文档是否正确加载。这听起来像sim卡上的加载代码有问题。尝试将文件内容输出到日志以验证其正确性。
是的,我确实尝试过,打印出来的内容是正确的。 – JHHoang
它可能是XML然后;)你能给我们一个在你的真实应用程序解析XML的例子吗? – deanWombourne
Im在演示项目中使用相同的XML – JHHoang
@deanWombourne这是我的XML格式[链接](http://dl.dropbox.com/u/37064335/ex.xml)的示例 – JHHoang