我正在使用NSXMLParser:
- (BOOL)parseXMLData:(NSData *)inData
{
provisioningParser = [[NSXMLParser alloc] initWithData: inData]; // defined if .h
[provisioningParser setDelegate:self];
[provisioningParser setShouldProcessNamespaces:NO];
[provisioningParser setShouldReportNamespacePrefixes:NO];
[provisioningParser setShouldResolveExternalEntities:NO];
return [provisioningParser parse];
}
我的问题是我应该何时发布NSXMLParser?我相信它在解析完成后会自动释放; 这是真的?如果是,仪器表明存在泄漏.
你有好主意吗 ?
谢谢
String tagIdentifier=12;
String sMyXML = "";
sMyXML += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
sMyXML += "<Tag>";
sMyXML += "<Header>";
sMyXML += "`<TagIdentifier></TagIdentifier>`";....
Run Code Online (Sandbox Code Playgroud)
这里我想在XML中使用String值tagIdentifier
String tagIdentifier=12;
Run Code Online (Sandbox Code Playgroud)
如何在标签内添加此字符串
<TagIdentifier>12</TagIdentifier>
Run Code Online (Sandbox Code Playgroud) 我的NSXMLParsing因为"&"字符而无法工作..我的代码在下面.请帮忙吗?
NSString *myRequestString = [NSString stringWithFormat:@"http://abc.com/def/webservices/aa.php?family_id=%d",self.passFamilyId];
//NSLog(@"Requested Service = %@",myRequestString);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:myRequestString]];
[request setHTTPMethod: @"POST" ];
NSData *downloadedData = [ NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *str = [[NSString alloc] initWithData:downloadedData encoding:NSASCIIStringEncoding];
//NSString *contentString = [str stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
NSData * data=[str dataUsingEncoding:NSUTF8StringEncoding];
//NSLog (@"string is :%@" ,str);
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:data];
// Call the XMLParsers's initXMLParse method.
ClientDetailXmlParser *parser = (ClientDetailXmlParser*)[[ClientDetailXmlParser alloc] initXMLParser];
[xmlParser setDelegate:parser];
BOOL success = [xmlParser parse];
// Check for XML …Run Code Online (Sandbox Code Playgroud) 我遇到了NSXMLParser的一个特殊问题.
由于某种原因,它会删除所有挪威字符æ,ø和å前面的所有字符.
但是,问题似乎与所有非az字符相同.(所有外国字符)
例子:
现实:Mål输出:ål
现实:Le chantdessirènes输出:ènes
下面是我从日志中打印出字符串的示例:
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
Run Code Online (Sandbox Code Playgroud)
日志:
2012-02-22 14:00:01.647 VotePlayClient[2776:207] found characters: Le chant des sir
2012-02-22 14:00:01.647 VotePlayClient[2776:207] found characters: ènes
Run Code Online (Sandbox Code Playgroud)
你可以清楚地看到它在遇到外国信件时跳转到一个新行.
我相信我必须弄清楚如何追加字符串或其他东西.
以下是NSXMLParser文件:
SearchXMLParser.h
#import <Foundation/Foundation.h>
#import "Search.h"
@interface SearchXMLParser : NSObject <NSXMLParserDelegate>
{
NSMutableString *currentNodeContent;
NSMutableArray *searchhits;
NSMutableArray *trackhits;
NSXMLParser *parser;
Search *currentSearch;
}
@property (readonly, retain) NSMutableArray *searchhits;
@property (readonly, retain) NSMutableArray *trackhits;
-(id) loadXMLByURL:(NSString *)urlString;
@end
Run Code Online (Sandbox Code Playgroud)
SearchXMLParser.m
#import "SearchXMLParser.h"
#import "Search.h"
@implementation SearchXMLParser
@synthesize searchhits, trackhits;
-(id) …Run Code Online (Sandbox Code Playgroud) 我们在Objective-C中使用NSXMLParser来解析我们的XML文档,这些文档都是UTF-8编码的.一个文档中有一个字符串"Nestlé"(如...<title>Nestlé Novelties</title>...).解析器刚退出,报告错误代码= 9的错误,因为"雀巢"一词末尾有法语字母"e".此外,我们尝试使用IE,Chrome,Safari直接显示相同的文档.他们报告了类似的编码错误.
我们对所有传入的XML文档使用UTF-8,这意味着它们都有" <?xml version="1.0" encoding="UTF-8" ?>"作为文档的顶部.
这是编码问题吗?如果是这样,我们如何解决这个问题?我们应该为所有XML文档使用什么编码?提前致谢!
巴克莱
全部,
我有以下格式的 XML:
<linked-list>
<Description>
<desc></desc>
<IP></IP>
</Description>
</linked-list>
Run Code Online (Sandbox Code Playgroud)
这个 XML 语句在 <linked-list></linked-list> 中可以有无数个 <Description></Description>。
我应该如何使用 NSXMLParser 解析它?我当前的代码如下,但解析不正确。
@implementation XMLParser
@synthesize response;
- (XMLParser *) initXMLParser
{
self = [super init];
// init dictionary of response data
response = [[NSMutableDictionary alloc] init];
return self;
}
//Gets Start Element of SessionData
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"linked-list"])
{
NSLog(@"Found linked-list in the return XML! Continuing...");
//response is a NSMutableArray instance variable
//THIS …Run Code Online (Sandbox Code Playgroud) 在这里变得非常沮丧..我怎么解析那些在其中有属性的xml ..我完全迷失了,
这就是我试图解析的xml看起来像..
<Rows>
<Row SKATERID="706" MANUFACTURER="A-DZG" ISFACT="F" ISSKATE="F"/>
<Row SKATERID="318" MANUFACTURER="A.R.E." ISFACT="F" ISSKATE="T"/>
//...
</Rows>
Run Code Online (Sandbox Code Playgroud) 我正在创建一个需要读取XML文件的iPhone应用程序
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *fileName;
@property (nonatomic, strong) NSString *description;
@property (nonatomic, strong) NSString *date;
@property (nonatomic, strong) NSString *link;
Run Code Online (Sandbox Code Playgroud)
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
// FIRST TAG XML
if([elementName isEqualToString:@"title"]){
// GET DATA FROM XML
getData = YES; // getData is a bool which is NO initialy
NSLog(@"Found");
}
else
NSLog(@"Not Found");
}
Run Code Online (Sandbox Code Playgroud)
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if(getData)
{
// CREATION DE L …Run Code Online (Sandbox Code Playgroud) 我找到了NSXMLParser构造函数使用URL的示例,例如:
NSXMLParser(contentsOfURL: (NSURL(string:"http://images.apple.com/main/rss/hotnews/hotnews.rss")))!
Run Code Online (Sandbox Code Playgroud)
但是我找不到如何将它与项目中的xml文件一起使用.
“ https://www.tokopedia.com/sitemap/product/1.xml.gz ”这是我的网址,该网址包含产品网址的数量,但它已压缩,我不知道如何解压缩该网址以及如何获取来自其中的数据,如何使用 scrapy 或 Beautiful soup 等其他 scrapy 库解压它