2012-02-14 74 views
2

我有一個示例XML這樣的:KissXML沒有返回字符串

<rss version="2.0"> 
<channel> 
    <title></title> 
    <link></link> 
    <description></description> 
<item> 
    <title></title> 
    <link></link> 
    <description></description> 
    <pubDate></pubDate> 
    <guid></guid> 
</item> 

等等......而我的OBJ-C語法看起來像這樣:

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

DDXMLDocument *ddDoc = [[DDXMLDocument alloc] initWithData:data options:0 error:&error]; 

NSArray *xmlItems = [ddDoc nodesForXPath:@"//item" error:&error]; // where ddDoc is your DDXMLDocument 
NSMutableArray *returnArray = [[NSMutableArray alloc] initWithCapacity:[xmlItems count]]; 

for(DDXMLElement* itemElement in xmlItems) 
{ 
    ActiveActivity *activity = [[ActiveActivity alloc] init]; 

    NSString *itemValueAsString = [[itemElement attributeForName:@"link"]stringValue]; 


    [returnArray addObject:activity]; 
} 

它沒有返回值,可以有人說我爲什麼?

回答

4

的問題是在這條線:

NSString *itemValueAsString = [[itemElement attributeForName:@"link"]stringValue]; 

link不是屬性,而是一個元件。所以,試試這個:

NSString *itemValueAsString = [[[itemElement elementsForName:@"link"] lastObject] stringValue]; 
-1
NSArray *xmlItems = [[ddDoc rootElement] elementsForName:@"item"]; 
+0

了'// item'應與名義'item',每一個他們在樹中的任何元素。 – rckoenes 2012-02-14 09:34:34

0

對於斯威夫特3,

let object: DDXMLElement = element.elements(forName: "objectKey").first! 
yourModelClass.stringVariable = object.stringValue!