标签: nsxmlparser

如何在不同的类中设置委托

我正在使用解析xml文档的NSXMLParser.您必须设置每次解析器找到元素时我们将调用的委托.我看过的例子都将委托设置为创建的同一个类:

NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:filename];
[parser setDelegate: self];
Run Code Online (Sandbox Code Playgroud)

其他示例将委托设置为父级.如果我想要另一个类(与同一个类无关)来处理委托,该怎么办?这样做的语法是什么?

我做到了这一点,但它不起作用.

@interface Util : NSObject <NSXMLParserDelegate> {
    //Some code here
}

//functions for the delegate and the implementation on the Util.m
//.
//.
//.
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答.

我忘了说在调用代表时我假设它会是这样的:

[parser setDelegate:Util];
Run Code Online (Sandbox Code Playgroud)

我认为这知道要为同一个类设置委托,消息是:

[parser setDelegate:self];
Run Code Online (Sandbox Code Playgroud)

delegates objective-c nsxmlparser

6
推荐指数
1
解决办法
4380
查看次数

无法将NSXMLParser委托设置为self

我正在尝试创建一个NSXMLParser并调用其委托方法.在将代表设置为self(下面的第2行)时,我收到警告Sending 'XMLParserViewController *' to a parameter of incompatible type 'id <NSXMLParserDelegate>'.我在这里缺少什么?

NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];
[parser setDelegate:self];
[parser parse];
[parser release];
Run Code Online (Sandbox Code Playgroud)

iphone debugging objective-c nsxmlparser ios

6
推荐指数
2
解决办法
5957
查看次数

iOS8 NSXMLParser崩溃

我在NSXMLParser中崩溃了

*因未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因是:'NSXMLParser不支持可重入解析.'

这是我的代码

NSString *wrappedSnippet = [NSString stringWithFormat:@"<html>%@</html>", self.snippet];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:[wrappedSnippet dataUsingEncoding:NSUTF8StringEncoding]];
[parser setDelegate:self];
[parser parse];
Run Code Online (Sandbox Code Playgroud)

应用程序在最后一行崩溃.

请注意,iOS7上的一切都很完美!

nsxmlparser ios8

6
推荐指数
3
解决办法
6725
查看次数

NSXMLParserErrorDomain错误5是什么意思?

好的,我回来完成这项任务.我从我的网络服务器上正确下载了我的XML,其URL指向服务器的文件,但是,当我检测到网络"无法访问"时,我只是将URL指向我的应用程序的本地XML,我得到以下错误(NB文件是服务器上的那个的直接副本).

我找不到详细说明,但我认为这是指该URL指向一个无法访问的位置.我是否将此资源存储在错误的位置?我想我想在HomeDirectory/Library中找到它?

调试输出

loadMyXml: /var/mobile/Applications/950569B0-6113-48FC-A184-4F1B67A0510F/MyApp.app/SampleHtml.xml
2009-10-14 22:08:17.257 MyApp[288:207] Wah! It didn't work. Error Domain=NSXMLParserErrorDomain Code=5 "Operation could not be completed.   (NSXMLParserErrorDomain error 5.)" 
2009-10-14 22:08:17.270 MyApp[288:207] Operation could not be completed. (NSXMLParserErrorDomain error 5.)

xml cocoa nsxmlparser

5
推荐指数
3
解决办法
2万
查看次数

在NSXMLParser中解析xml

我已经阅读了很多关于如何从xml文件中获取文本的示例,但只是不知道如何.这是一个示例xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<questions>
    <set>
        <question>Question</question>
        <answer>Answer</answer>
    </set>
</questions>
Run Code Online (Sandbox Code Playgroud)

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI,有什么获得的值最简单的方法QuestionAnswer?我已经把我的解析器委托连接起来了.

xcode objective-c nsxmlparser xml-parsing ios

5
推荐指数
1
解决办法
1万
查看次数

获取 HTML 页面作为 XML 代码

我刚刚学习了如何使用 NSXMLPARSER 在 Xcode 中解析数据。

为了做到这一点,显然,我需要 xml 文件,但我仍然是 Web 编程的初学者。

我在从网页获取 xml 文件时遇到困难。我尝试使用某些软件将 html 转换为 xml,但仍然没有得到我想要的格式。

我想要的格式应该类似于:

<?xml version="1.0" encoding="UTF-8"?>
<Books>
    <Book id="1">
        <title>Circumference</title>
        <author>Nicholas Nicastro</author>
        <summary>Eratosthenes and the Ancient Quest to Measure the Globe.</summary>
    </Book>
    <Book id="2">
        <title>Copernicus Secret</title>
        <author>Jack Repcheck</author>
        <summary>How the scientific revolution began</summary>
    </Book>
</Books>
Run Code Online (Sandbox Code Playgroud)

那么如何从网页中获取这样的格式呢?

还有一件事:如果有人知道使用 Xcode 的 NSXMLPARSER,这是从网站提取数据的方法吗?我的意思是获取一个 xml 文件,将其放入我们项目的资源中,然后从中提取数据?

html xml xcode nsxmlparser

5
推荐指数
1
解决办法
1万
查看次数

使用NSXMLParser仅解析前十个帖子,然后分别解析下一个帖子

我正在使用NSXmlParser来解析rss feed.到目前为止一切运作良好.

我预计rss feed最终会包含几十个/几百个帖子.我目前的解决方案是读取整个RSS Feed并显示结果.但是我想只阅读前十个帖子(以防止它解析可能有数百个项目).然后在稍后的时间(例如当用户到达表的末尾时)来解析接下来的十个帖子.

所以我的问题是如何解析前十个帖子,然后解析接下来的十个帖子,然后解析接下来的十个帖子等等......

这是我用来获取所有帖子的内容:

- (void)parseXMLFileAtURL:(NSString *)URL
{   
    myArray = [[NSMutableArray alloc] init];

    //convert the path to a proper NSURL or it won't work
    NSURL *xmlURL = [NSURL URLWithString:URL];

    rssParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlURL];
    [rssParser setDelegate:self];
    [rssParser parse];

}

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
    //error
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{            

    currentElement = [elementName copy];

    if ([elementName isEqualToString:@"item"]) {
        //clear out our story item caches...
        item = [[NSMutableDictionary alloc] init]; …
Run Code Online (Sandbox Code Playgroud)

rss xcode nsxmlparser nsxml ios

5
推荐指数
2
解决办法
1173
查看次数

NSXMLParser无法解析特殊字符(德语和法语)

我正在开发一个App,它在私人服务器上进行搜索并向用户显示结果.问题是NSXLParser无法解析特殊的德语和法语字符.例如:它应该是:(Geschäftsführer) - >我得到的是:(äftsführer)

我怎样才能解决这个问题 ?

这是我的代码:

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"results"])
    {
        currentJob = [SearchResult alloc];
    }

}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{


    if ([elementname isEqualToString:@"jobTitle"])
    {
        currentJob.jobTitle = currentNodeContent;
    }

    if ([elementname isEqualToString:@"location"])
    {
        currentJob.shortAddress = currentNodeContent;
    }

    if ([elementname isEqualToString:@"companyName"])
    {
        currentJob.employer = currentNodeContent;
    }

    if …
Run Code Online (Sandbox Code Playgroud)

xml parsing objective-c special-characters nsxmlparser

5
推荐指数
1
解决办法
1678
查看次数

NSXMLParserErrorDomain 111

下面的代码是打印以下消息: Error Domain=NSXMLParserErrorDomain Code=111 "The operation couldn’t be completed. (NSXMLParserErrorDomain error 111.)

mainUrl = [NSURL URLWithString:@"http://www.carris.pt/pt/carreiras"];
NSString *urlContents = [NSString stringWithContentsOfURL:mainUrl encoding:NSISOLatin1StringEncoding error:nil];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[urlContents dataUsingEncoding:NSISOLatin1StringEncoding]];
[xmlParser parse];
NSLog(@"%@", [xmlParser parserError]);
Run Code Online (Sandbox Code Playgroud)

有人有线索吗?正如您在代码中看到的那样,html采用ISO-8859-1编码.

更新:我将网址提交到html验证器网站:http://validator.w3.org/,它发现了30多个错误.我认为这与错误有关.但我可以用HPPLE解析html.

objective-c nsxmlparser nsxmlparsererrordomain ios

5
推荐指数
1
解决办法
8084
查看次数

在Swift中处理XML元素的属性

我想url通过使用NSXMLParser从这个元素中读取属性:

<enclosure url="http://www.marketoloji.com/wp-content/uploads/2015/01/IMG_1649-110x110.jpg" length="7113" type="image/jpg"/>
Run Code Online (Sandbox Code Playgroud)

我在Apple网站上找到了这个资源,但它是针对obj C的,而不是针对Swift的:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/XMLParsing/Articles/HandlingElements.html#//apple_ref/doc/uid/20002265-BCIJFGJI

我知道我应该attributeDictdidStartElement方法中使用字典,但不知道如何.

nsxmlparser swift

5
推荐指数
1
解决办法
3032
查看次数