libxml2 示例(带有包装器)

发布于 2024-10-12 19:06:13 字数 322 浏览 3 评论 0原文

我正在使用 XML 解析器 libxml2 和页面上给出的包装器 http://cocoawithlove.com/2008/10/using -libxml2-for-parsing-and-xpath.html

但我不确定我是否正确使用并且遇到错误(解析等)

所以有人可以给我提供一个完整的示例吗我可以参考并获取一个想法,如果我做错了什么。

非常感谢您提前提供的所有帮助。

I am using the XML parser libxml2 with wrapper as given on the page
http://cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html

But i am not sure if I am using correctly and am getting errors (parsing,etc)

So could someone please provide me a complete example which i can refer and get an idea if I am doing something incorrectly.

thanks a lot for all your help in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栖竹 2024-10-19 19:06:13

我也使用这个方法来解析 xml 和 html 文件。
例如,解析 rss xml:

//add xml source
NSURL *url = [NSURL URLWithString:@"http://feeds.bbci.co.uk/news/rss.xml?edition=int"];     
NSData *xmlData = [NSData dataWithContentsOfURL:url];

//parse the whole file with all tags
NSArray *rssFeedArray = PerformXMLXPathQuery(xmlData, @"//*");
NSLog(@"rssFeedArray: %@", rssFeedArray);

//* - 查询意味着解析器将遍历文件的所有标签。然后记录该数组以查看xml的整个结构。

通过“/rss/channel/item”查询,您将仅获得项目标签元素(或者仅获取第一个项目,请使用“/rss/channel/item[1]”)。

在这种情况下,由于 BBC 提要结构,您可以捕获每个项目的标题

[[[[rssFeedArray objectAtIndex:i] valueForKey:@"nodeChildArray"] objectAtIndex:0] valueForKey:@"nodeContent"]]

和描述,

[[[[rssFeedArray objectAtIndex:i] valueForKey:@"nodeChildArray"] objectAtIndex:1]valueForKey:@"nodeContent"]]

等等。

I'm using this methods too, to parse xml and html files.
For example to parse rss xml:

//add xml source
NSURL *url = [NSURL URLWithString:@"http://feeds.bbci.co.uk/news/rss.xml?edition=int"];     
NSData *xmlData = [NSData dataWithContentsOfURL:url];

//parse the whole file with all tags
NSArray *rssFeedArray = PerformXMLXPathQuery(xmlData, @"//*");
NSLog(@"rssFeedArray: %@", rssFeedArray);

//* - query means the parser will go through all tags of the file. Then log the array to see the whole structure of xml.

Whith '/rss/channel/item' query you will only get the item tags element's, (or to get only the first item use '/rss/channel/item[1]').

in this case because of the bbc feed structure you can catch each item title at

[[[[rssFeedArray objectAtIndex:i] valueForKey:@"nodeChildArray"] objectAtIndex:0] valueForKey:@"nodeContent"]]

and description at

[[[[rssFeedArray objectAtIndex:i] valueForKey:@"nodeChildArray"] objectAtIndex:1]valueForKey:@"nodeContent"]]

and go on and on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文