gpt4 book ai didi

iphone - XML 到 NSdictionary 到 plist

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:18:48 27 4
gpt4 key购买 nike

大家好,我有一些奇怪的问题。我正在使用一个简单的 XML 到 NSDictionary 转换器 http://troybrant.net/blog/2010/09/simple-xml-to-nsdictionary-converter/ 但是如果打印 NSDictionary ,我可以看到节点的文本值,但是如果我将它存储在 plist 中,文本节点将没有任何字符串值。见附件图片。 i can see the text node value when i print NSdictionary

这里是 plist 截图。

enter image description here

这是代码

NSURL * URL = [[NSURL alloc]initWithString:@"rss feed link "];
NSData * data = [[NSData alloc] initWithContentsOfURL:URL];
NSString *testXMLString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

// Parse the XML into a dictionary
NSError *parseError = nil;
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError];
NSString * filepath = [self dataFilePathwithFilename:[NSString stringWithFormat:@"TEST.plist"]];
[xmlDictionary writeToFile:filepath atomically:YES];


// Print the dictionary
NSLog(@"%@", xmlDictionary);

最佳答案

我认为您的 plist 文件没有空值。您只是没有考虑第一张图片中突出显示文本中的换行符 ("\n\thttp://wordpress.org/?v=3.0.1")。

验证这一点的一种简单方法是使用文本编辑器打开它。你会发现值在那里。您还可以在属性列表编辑器中导航到该字段,然后按向下按钮。

替换换行符

使用stringByReplacingOccurrencesOfString:withString:@"" 替换所有换行符的方法。

testXMLString = [testXMLString stringByReplacingOccurrencesOfString:@"\n" withString:@""];

更好的修剪

这样替换制表符 (\t) 似乎会使 XMLReader 无法读取字符串。因此,要解决此问题,更改 XMLReader 代码以将修剪后的值插入字典会更容易。

parser:didEndElement:namespaceURI:qualifiedName:方法中,替换

[dictInProgress setObject:textInProgress forKey:kXMLReaderTextNodeKey];

NSString * trimmedString = [textInProgress stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\n\t"]];
[dictInProgress setObject:trimmedString forKey:kXMLReaderTextNodeKey];

关于iphone - XML 到 NSdictionary 到 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6495167/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com