objective-c - 使用 NSXMLParser 问题解析
<p>我正在尝试解析来自 Web 服务器的响应。<br><br>我的解析器如下:<br><pre><code>#import "XMLParser.h"
#import "AppDelegate.h"
#import "Child.h"
@implementation XMLParser
- (XMLParser *) initXMLParser {
self = ;
if(self)
{
appDelegate = (AppDelegate *)[ delegate];
}
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
{
if()
{
// initialize the array
if(!appDelegate.children)
{
appDelegate.children = [ init];
}
}
else if()
{
if(!aChild)
{
//Initialize the child.
aChild = [ init];
}
}
NSLog(@"Processing Element: %@", elementName);
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(!currentElementValue)
{
currentElementValue = [ initWithString:string];
}
else
{
;
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
//NSLog(@"El name: %@", elementName);
if()
NSLog(@"end of xml");
return;
if()
{
NSLog(@"Found end of child");
;
aChild = nil;
}
else if()
{
NSLog(@"Found key");
}
else if()
{
NSLog(@"Found checkedIn");
}
else if()
{
NSLog(@"Found firstname");
}
else if()
{
NSLog(@"found gender");
}
else if()
{
NSLog(@"found id");
}
else if()
{
NSLog(@"found isontour");
}
else if()
{
NSLog(@"found lastname");
}
else if()
{
NSLog(@"found groupname");
}
currentElementValue = nil;
}
@end
</code></pre><br>现在我只是想看看它是否找到了数据......然后我会保存它......<br>但是在我的 didEndElement 中,除了<br><pre><code>if()
</code></pre><br>我的 xml 响应示例:<br><pre><code> <a:KeyValueOfintKidf4KEWLbb>
<a:Key>XXXXXXXX</a:Key>
<a:Value xmlns:b="http://schemas.datacontract.org/2004/07/DayCare.DB.DTO">
<b:CheckedIn>false</b:CheckedIn>
<b:FirstName>XXXXXXX</b:FirstName>
<b:Gender>Male</b:Gender>
<b:Id>XXXXXXXX</b:Id>
<b:IsOnTour>false</b:IsOnTour>
<b:LastName>XXXXXX</b:LastName>
<b:Photo>XXXXXXXX</b:Photo>
<b:GroupName>XXXXX</b:GroupName>
</a:Value>
</a:KeyValueOfintKidf4KEWLbb>
</code></pre><br>知道为什么它没有其他元素吗?<br>我以前从未做过网络服务之类的,所以解释越简单越好......<br><br>当我 NSLog 元素时,我可以看到它正确地通过了 xml 文档<br><pre><code>NSLog(@"Processing Element: %@", elementName);
</code></pre><br>例子:<br><pre><code>Processing Element: a:KeyValueOfintKidf4KEWLbb
Processing Element: a:Key
Processing Element: a:Value
Processing Element: b:CheckedIn
Processing Element: b:FirstName
Processing Element: b:Gender
Processing Element: b:Id
Processing Element: b:IsOnTour
Processing Element: b:LastName
Processing Element: b:Photo
Processing Element: b:GroupName
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p>在 <code>didEndElement</code> ,尝试改变这部分:<br><pre><code>if()
NSLog(@"end of xml");
return;
</code></pre><br>到:<br><pre><code>if()
{
NSLog(@"end of xml");
return;
}
</code></pre><br>没有将这两个语句放在 <code>if</code> 之后在一个街区中,<code>return</code>每次都被执行。</p>
<p style="font-size: 20px;">关于objective-c - 使用 NSXMLParser 问题解析,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/9096563/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/9096563/
</a>
</p>
页:
[1]