gpt4 book ai didi

ios - NSXMLParser,解析xml问题

转载 作者:行者123 更新时间:2023-11-29 04:04:22 27 4
gpt4 key购买 nike

我想解析 [description] [p] blah blah [/description] [/p] 中包含的描述

 <item>
<title>
Jon Greene named associate director for strategic planning and development at institute
</title>
<link>
http://www.vtnews.vt.edu/articles/2013/03/031513-ictas-greenepromotion.html
</link>


<description>
<p>In this new position, Jon Greene will be responsible for strategic research development of multimillion-dollar, interdisciplinary proposals at the Institute for Critical Technology and Applied Science,</p>
</description>



<pubDate>Fri, 15 Mar 2013 00:00:00 -0400</pubDate>
<guid isPermaLink="true">
http://www.vtnews.vt.edu/articles/2013/03/031513-ictas-greenepromotion.html
</guid>
<enclosure url="http://www.vtnews.vt.edu/articles/2009/10/images/M_09783greene-jpg.jpg" length="27715" type="image/jpeg"/>
<category>
Institute for Critical Technology and Applied Science
</category>
<category>College of Engineering</category>
<category>Research</category>
<category>National Capital Region</category>
</item>

我正在使用 NSXMLParser 的委托(delegate)方法:

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


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

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

要获得标题,我可以在 didEndElement 中执行此操作方法:

if ([elementName isEqualToString:@"title"]){
self.aArticle.title = self.currentElementValue;
}

但是,当我尝试 @"p" 时,这不起作用只是想知道如何访问 < p >包含完整描述的节点。

有更好的方法/解决方案吗?

当我做NSLog时在foundCharacters中打印字符串我得到了其中的一部分:

<
2013-03-18 00:42:31.978 newsFeed[67052:c09] string is p
2013-03-18 00:42:31.978 newsFeed[67052:c09] string is >
2013-03-18 00:42:31.979 newsFeed[67052:c09] string is Tysor will work closely with national security thrust leader Jon Greene and with cognition and communication thrust leader Jeff Reed, a professor of electrical and computer engineering in the College of Engineering and director of Wireless@VT.
2013-03-18 00:42:31.979 newsFeed[67052:c09] string is  
2013-03-18 00:42:31.979 newsFeed[67052:c09] string is <
2013-03-18 00:42:31.979 newsFeed[67052:c09] string is /p
2013-03-18 00:42:31.979 newsFeed[67052:c09] string is >

我现在能想到的唯一方法是如何跟踪位置 < p >在方法foundCharacters中找到,并且有一个计数变量来检查我们是否达到了封闭的< p >内的值标签。

最佳答案

试试这个方法

VC.m

NSMutableString *xmlString;

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)nameSpaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if (!xmlString)
xmlString = [[NSMutableString alloc] init];
else
[xmlString setString:@""];
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
[xmlString appendString:string];
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"p"])
{
if (![xmlString isEqual:@""])
{
NSLog(@"%@",xmlString)'
[SomeArray addObject:xmlString];
}
}

//Release string
[xmlString release];
xmlString = nil;
}

关于ios - NSXMLParser,解析xml问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469977/

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