大多数如何调用NSXMLParser的示例都包含在涉及Apps的复杂项目中.什么是演示回调的简单示例.
我需要解析按下UIButton时在我的资源文件夹中的本地xml文件.我知道如何从Web解析XML文件.现在我如何显示资源文件夹中的xml内容.
如何解析本地XML文件?
我想我读过与这个问题有关的每一个网页,但我仍然无法找到解决方案,所以我在这里.
我有一个不受我控制的HTML网页,我需要从我的iPhone应用程序解析它.这是我正在谈论的网页示例:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</HEAD>
<BODY>
<LI class="bye bye" rel="hello 1">
<H5 class="onlytext">
<A name="morning_part">morning</A>
</H5>
<DIV class="mydiv">
<SPAN class="myclass">something about you</SPAN>
<SPAN class="anotherclass">
<A href="http://www.google.it">Bye Bye è un saluto</A>
</SPAN>
</DIV>
</LI>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
我正在使用NSXMLParser,它一直顺利,直到找到èhtml实体.它调用foundCharacters:for"Bye Bye",然后调用resolveExternalEntityName:systemID ::,其实体名称为"egrave".在这个方法中,我只是返回在NSData中转换的字符"è",再次调用foundCharacters将字符串"è"添加到前一个"Bye Bye",然后解析器引发NSXMLParserUndeclaredEntityError错误.
我没有DTD,我无法更改我正在解析的html文件.你对这个问题有什么想法吗?罗伯,先谢谢你们所有人.
更新(12/03/2010).在Griffo的建议之后我得到了这样的结论:
data = [self replaceHtmlEntities:data];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
Run Code Online (Sandbox Code Playgroud)
其中replaceHtmlEntities:(NSData*)是这样的:
- (NSData *)replaceHtmlEntities:(NSData *)data {
NSString *htmlCode = [[NSString alloc] initWithData:data …
Run Code Online (Sandbox Code Playgroud) 嗨我正在创建一个应用程序,必须从服务器中的xml文件打印标签中的值.我尝试阅读谷歌搜索下的一些文档..但我找不到它...有没有人知道简单的教程或用于在我的应用程序中集成xml解析的任何示例代码.
我下载了一个维基百科转储,我想将维基格式转换为我的对象格式.是否有可用的wiki解析器将对象转换为XML?
我不知道如何解析我的下面的代码..可以有人
func callService(usr: String, pwdCode: String) {
let url = NSURL(string: "http://inspect.dev.cbre.eu/SyncServices/api/jobmanagement/PlusContactAuthenticationPost")
var xmlParse:NSString = ""
var data : NSData!
let request = NSMutableURLRequest(URL: url!)
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
let dictionary = ["email": usr, "userPwd": pwdCode]
var error: NSError?
if let body = NSJSONSerialization.dataWithJSONObject(dictionary, options: nil, error: &error) {
request.HTTPBody = body
} else {
println("JSON error: \(error)")
}
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
(data, response, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
// xmlParse=NSString(data: data, encoding: NSUTF8StringEncoding)! …
Run Code Online (Sandbox Code Playgroud) 我正在使用NSXMLParser解析RSS提要,它对标题和其他字符串工作正常,但其中一个元素是一个类似的图像
<!CDATA <a href="http:image..etc>
Run Code Online (Sandbox Code Playgroud)
如何在表格视图中将其添加为我的单元格图像?我会将其定义为图像类型吗?
这就是我用来解析的方法:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
//NSLog(@"found this element: %@", elementName);
currentElement = [elementName copy];
if ([elementName isEqualToString:@"item"]) {
// clear out our story item caches...
item = [[NSMutableDictionary alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentDate = [ [NSMutableString alloc] init];
currentSummary = [[NSMutableString alloc] init];
currentLink = [[NSMutableString alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
//NSLog(@"ended element: %@", elementName);
if ([elementName …
Run Code Online (Sandbox Code Playgroud) 我正在使用一个由博主(http://troybrant.net/blog/)编写的类,它接受一个XML字符串并吐出一个NSDictionary.
它很漂亮......完美无缺,除了我在许多元素值的开头有一个奇怪的换行和空白配置.
我一直无法弄明白为什么.我在这里上课,所以我可以得到第二双眼睛...看看是否有人注意到他正在使用的方法中有任何可疑的东西.
//
// XMLReader.m
//
#import "XMLReader.h"
NSString *const kXMLReaderTextNodeKey = @"text";
@interface XMLReader (Internal)
- (id)initWithError:(NSError **)error;
- (NSDictionary *)objectWithData:(NSData *)data;
@end
@implementation XMLReader
#pragma mark -
#pragma mark Public methods
+ (NSDictionary *)dictionaryForXMLData:(NSData *)data error:(NSError **)error
{
XMLReader *reader = [[XMLReader alloc] initWithError:error];
NSDictionary *rootDictionary = [reader objectWithData:data];
[reader release];
return rootDictionary;
}
+ (NSDictionary *)dictionaryForXMLString:(NSString *)string error:(NSError **)error
{
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
return [XMLReader dictionaryForXMLData:data error:error];
}
#pragma mark -
#pragma …
Run Code Online (Sandbox Code Playgroud) NSXMLParser的解析方法是异步的吗?
换句话说,如果我有一个NSXMLParse对象,并且我[someParseObject parse]
从主线程调用,它会阻止主线程吗?
我正在使用NSXMLParser从url解析xml(我的代码与此处的代码几乎完全相同)
一些元素包含特殊字符,如"á",这使得一个单词很可能被分成两个(á和ndre).
这是我的loadXMLByURL
-(id) loadXMLByURL:(NSString *)urlString{
tickets = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
return self;}
Run Code Online (Sandbox Code Playgroud)
我很确定这是因为没有设置编码(我认为它需要是NSUTF8StringEncoding)但我不知道在哪里/如何应用它.
[更新]我的其余代码......
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementname isEqualToString:@"ticket"])
{
currentTicket = [Ticket alloc];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementname isEqualToString:@"name"])
{
currentTicket.name = currentNodeContent;
} …
Run Code Online (Sandbox Code Playgroud) nsxmlparser ×10
iphone ×5
objective-c ×5
ios ×2
swift ×2
xcode ×2
xml ×2
cdata ×1
cocoa ×1
concurrency ×1
ios4 ×1
java ×1
mediawiki ×1
nlp ×1
nsdictionary ×1
nsxml ×1
nsxmlelement ×1
parsing ×1
wikipedia ×1
xml-parsing ×1