0

私は自分のプロジェクトで TFHpple を使用しようとしています。これがそのコードです...理解するのはかなり簡単です:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    NSURL *url = [NSURL URLWithString:@"http://v1.myurl.com/somemethod"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request startAsynchronous];
}

- (void)viewDidUnload
{
    [self setGpMapView:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
    // Use when fetching text data
    NSString *responseString = [request responseString];

    // Use when fetching binary data
    NSData *responseData = [request responseData];
    TFHpple *doc = [[TFHpple alloc] initWithXMLData:responseData];
    NSArray *elements = [doc searchWithXPathQuery:@"/entry"];
    NSLog(@"count: %@",[elements count]);

}

- (void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error = [request error];
}

その間に、http 要求呼び出しを行うために asihttp ライブラリも使用しています。コンソールで null が表示されます。xml をもう一度確認しました。タグが確実に存在することはわかっています。何か方法はありますか?

編集 - 1

xml スキーマは次のとおりです。

<feed xmlns:s="http://syndication.nhschoices.nhs.uk/services" xmlns="http://www.w3.org/2005/Atom">
<title type="text">
NHS Choices - GP Practices Near Location - richmond - Within 50km
</title>
<id>
http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/location?range=50&northing=174900&easting=517900
</id>
<rights type="text">© Crown Copyright 2009</rights>
<updated>2012-04-24T11:54:04+01:00</updated>
<category term="Search"/>
<logo>
http://www.nhs.uk/nhscwebservices/documents/logo1.jpg
</logo>
<author>
<name>NHS Choices</name>
<uri>http://www.nhs.uk</uri>
<email>webservices@nhschoices.nhs.uk</email>
</author>
<link rel="self" type="application/xml" title="NHS Choices - GP Practices Near Location - richmond - Within 50km" href="http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/location?apikey=YAHUGHET&range=50&northing=174900&easting=517900&name=richmond"/>
<link rel="first" type="application/xml" title="first" length="1000" href="http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/location?apikey=YAHUGHET&range=50&northing=174900&easting=517900&name=richmond&page=1"/>
<link rel="next" type="application/xml" title="next" length="1000" href="http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/location?apikey=YAHUGHET&range=50&northing=174900&easting=517900&name=richmond&page=2"/>
<link rel="last" type="application/xml" title="last" length="1000" href="http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/location?apikey=YAHUGHET&range=50&northing=174900&easting=517900&name=richmond&page=10"/>
<link rel="alternate" title="NHS Choices - Find and choose services - GP Practices" href="http://www.nhs.uk/ServiceDirectories/pages/ServiceSearch.aspx?ServiceType=GP"/>
<s:SearchCoords>174900,517900</s:SearchCoords>
<entry>
<id>
http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/32248
</id>
<title type="text">Sayer A</title>
<updated>2012-04-24T10:54:04Z</updated>
<link rel="self" title="Sayer A" href="http://v1.syndication.nhschoices.nhs.uk/organisations/gppractices/32248?apikey=YAHUGHET"/>
<link rel="alternate" title="Sayer A" href="http://www.nhs.uk/ServiceDirectories/Pages/GP.aspx?pid=15F37AEF-EC5B-4A90-9E72-269ADEB39629"/>
<content type="application/xml">
<s:organisationSummary>
<s:name>Sayer A</s:name>
<s:address>
<s:addressLine>The Richmond Green Medical Cen</s:addressLine>
<s:addressLine>19 The Green</s:addressLine>
<s:addressLine>Richmond</s:addressLine>
<s:addressLine>Surrey</s:addressLine>
<s:postcode>TW91PX</s:postcode>
</s:address>
<s:contact type="General">
<s:telephone>020 83327515</s:telephone>
</s:contact>
<s:geographicCoordinates>
<s:northing>174900</s:northing>
<s:easting>517800</s:easting>
<s:longitude>-0.305512266736965</s:longitude>
<s:latitude>51.4608026642546</s:latitude>
</s:geographicCoordinates>
<s:Distance>0.1</s:Distance>
</s:organisationSummary>
</content>
</entry>
<entry>
4

1 に答える 1

0

Ok。どうやらルート要素が<feed>あり、その中にいくつかの<entry>要素があります。したがって、それらをキャッチするには、この行を変更する必要があります (二重の「/」に注意してください)。また、正しい xml をパーサーに供給していることを確認するためだけに、応答をログに記録していただけると助かります。

NSArray *elements = [doc searchWithXPathQuery:@"//entry"];
于 2012-04-24T12:36:27.510 に答える