我在使用TFHpple和执行基本的XML查询时遇到了问题。我已经包含了代码和XML响应。我有一个MutableArray,它存储返回的数据,然后存储NSLog。在解析HTML页面时,下面的代码对我来说很好(当然,我使用了initWIthHTMLData:代替)。任何帮助都将不胜感激。
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL
URLWithString:@"http://api.wmata.com/Rail.svc/Stations?
LineCode=RD&api_key=---------------------------"]];
// Create parser
TFHpple *xpathParser = [[TFHpple alloc] initWithXMLData:data]; //using XML data
//Pass in the search path
NSArray *elements = [xpathParser searchWithXPathQuery:@"//Name"];
// Access the first cell
if([elements count] > 0) {
TFHppleElement *element = [elements objectAtIndex:0];
// Get the text within the cell tag
NSString *content = [element content];
if (content) {
//NSLog(@"%@", content);
self.linkElements = [elements copy];
}else{
NSLog(@"No string found in the content");
}
}else{
NSLog(@"Nothing was found for your search query");
}
NSLog(@"The following is the result of the link elements array: %@", self.linkElements);以下是xml响应示例:
<StationsResp xmlns="http://www.wmata.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Stations>
<Station>
<Code>C02</Code>
<Lat>38.9013327968</Lat>
<LineCode1>BL</LineCode1>
<LineCode2>OR</LineCode2>
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0336341721</Lon>
<Name>McPherson Square</Name>
<StationTogether1 />
<StationTogether2 />
</Station>
<Station>
<Code>C01</Code>
<Lat>38.8983144732</Lat>
<LineCode1>BL</LineCode1>
<LineCode2>OR</LineCode2>
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0280779971</Lon>
<Name>Metro Center</Name>
<StationTogether1>A01</StationTogether1>
<StationTogether2 />
</Station>
<Station>
<Code>A01</Code>
<Lat>38.8983144732</Lat>
<LineCode1>RD</LineCode1>
<LineCode2 i:nil="true" />
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0280779971</Lon>
<Name>Metro Center</Name>
<StationTogether1>C01</StationTogether1>
<StationTogether2 />
</Station>
...发布于 2012-11-28 15:45:34
使用此示例XML:
<?xml version="1.0"?>
<Station>
<Code>C02</Code>
<Lat>38.9013327968</Lat>
<LineCode1>BL</LineCode1>
<LineCode2>OR</LineCode2>
<LineCode3 i:nil="true" />
<LineCode4 i:nil="true" />
<Lon>-77.0336341721</Lon>
<Name>McPherson Square</Name>
<StationTogether1 />
<StationTogether2 />
</Station>从[element content]到[element text],这是我的输出:
McPherson广场
看来你可以用[element text]了。Please refer to this similar question/answer。
希望能帮上忙。
https://stackoverflow.com/questions/10703885
复制相似问题