1

在从 Objective-C 中的动态 url 解析 xml 文件时,我实际上遇到了一个问题。Parser 对整个项目工作正常,但现在我必须设置一个动态 URL 来解析所需的 XML 文件。

我有两个变量:一个用于 BaseURL,一个用于 Params。这是我记录的代码:

    //The Baseurl
NSMutableString* baselink = [NSMutableString stringWithString:zimmertyp.typlink];   

//Adds the params to URL
[baselink appendString:aSlice.link];

//In Log it shows the right url to my XML-File with params
NSLog(@"Selected-URL: %@", url);

//I tried to convert the String to NSURL here
NSURL *url = [NSURL URLWithString: baselink];


NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
self.navigationItem.prompt = @" ";

//Initialize the delegate.
XMLParser *parser = [[XMLParser alloc] initXMLParser];

//Set delegate
[xmlParser setDelegate:parser];

//Start parsing the XML file.
BOOL success = [xmlParser parse];

if(success)
    NSLog(@"No Errors");
else
    NSLog(@"Error Error Error!!!"); 

每次解析器尝试通过时,我都会得到:

2011-02-16 16:40:03.371 Project[15566:207] Selected-URL: http://xml.projectwebsite.de/price/doppelzimmer.xml
    ?Zimmertyp=Doppelzimmer+Classic
2011-02-16 16:40:03.373 Project[15566:207] Error Error Error!!!
2011-02-16 16:40:03.374 Project[15566:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString stringByAppendingString:]: nil argument'

看起来 NSUrl 是空的,还是我错了?应用程序在解析器使用 url 初始化时崩溃。

谁能告诉我我的错是什么?

问候,扎拉卡斯

4

1 回答 1

2

我自己解决了这个问题。AppendString 方法在字符串中添加了空格……不知道为什么。我从字符串中转义了空格。现在解析器工作正常.. ;)

于 2011-02-18T11:42:45.147 回答