2011-10-27 25 views
2

我真的需要通过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 =(无 - 没有打印出来)。两个项目基本相同。

+1

它可能是XML然后;)你能给我们一个在你的真实应用程序解析XML的例子吗? – deanWombourne

+0

Im在演示项目中使用相同的XML – JHHoang

+0

@deanWombourne这是我的XML格式[链接](http://dl.dropbox.com/u/37064335/ex.xml)的示例 – JHHoang

回答

4

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

+0

谢谢 - 这也帮助了我 - 我让xCode“修复”文件太好了:)回答: –

+0

@ JHHoang.Thanks ..我也疯了......但这固定了它。 – RookieAppler

0

我会在将它传递到TBXML进行解码之前,检查您尝试解析的XML文档是否正确加载。这听起来像sim卡上的加载代码有问题。尝试将文件内容输出到日志以验证其正确性。

+0

是的,我确实尝试过,打印出来的内容是正确的。 – JHHoang

相关问题