我需要你的帮助。这是我第一次尝试解析 HTML,并且遇到了一些问题。我关注了关于 HTML 解析的Rays 教程。他使用hpple。我要解析的文件比他的要复杂得多。我想通过下面的代码提取一些变量:
<div id="status">
<div id="loading" style="display:none">Error:<br />Connection to demo board was lost.</div>
<div id="display">
<span style="float:right;font-size:9px;font-weight:normal;padding-top:8px;text-indent:0px">(click to toggle)</span>
<p>LEDs:<br /><span class="leds">
<!-- <a id="led7" onclick="newAJAXCommand('leds.cgi?led=7');">•</a>
<a id="led6" onclick="newAJAXCommand('leds.cgi?led=6');">•</a>
<a id="led5" onclick="newAJAXCommand('leds.cgi?led=5');">•</a>
<a id="led4" onclick="newAJAXCommand('leds.cgi?led=4');">•</a>
<a id="led3" onclick="newAJAXCommand('leds.cgi?led=3');">•</a>
<a id="led2" onclick="newAJAXCommand('leds.cgi?led=2');">•</a> -->
<a id="led1" onclick="newAJAXCommand('leds.cgi?led=1');">•</a>
<!-- <a id="led0">•</a> -->
</span></p>
<p>Buttons:<br />
<!-- <span id="btn3">?</span>
<span id="btn2">?</span>
<span id="btn1">?</span> -->
<span id="btn0">?</span></p>
<p>Potentiometer: <span id="pot0" style="font-weight:normal">?</span></p>
<p>Temperature: <span id="temp0" style="font-weight:normal">?</span></p>
</div>
到目前为止,我可以获得 LED、按钮、电位器和温度。我无法得到他们的价值观。(那些特定的 4 个字段的值)。
我正在使用下面的代码:
- (void)loadTutorials {
// 1
NSURL *tutorialsUrl = [NSURL URLWithString:@"http://192.168.0.112/"];
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl];
// 2
TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData];
// 3
NSString *tutorialsXpathQueryString = @"//div[@id='display']/p";
NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];
// 4
NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in tutorialsNodes) {
// 5
Tutorial *tutorial = [[Tutorial alloc] init];
[newTutorials addObject:tutorial];
NSLog(@"Object=%@",element);
// 6
tutorial.title = [[element firstChild] content];
// 7
tutorial.url = [element objectForKey:@"???"]; //???
}
// 8
_objects = newTutorials;
[self.tableView reloadData];
}
我怀疑问题出在 objectForKey: 但我不确定。我测试了我能想象到的所有类型的键。任何帮助都将受到欢迎。