2

我需要你的帮助。这是我第一次尝试解析 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');">&bull;</a>
    <a id="led6" onclick="newAJAXCommand('leds.cgi?led=6');">&bull;</a>
    <a id="led5" onclick="newAJAXCommand('leds.cgi?led=5');">&bull;</a>
    <a id="led4" onclick="newAJAXCommand('leds.cgi?led=4');">&bull;</a>
    <a id="led3" onclick="newAJAXCommand('leds.cgi?led=3');">&bull;</a>
    <a id="led2" onclick="newAJAXCommand('leds.cgi?led=2');">&bull;</a> -->
    <a id="led1" onclick="newAJAXCommand('leds.cgi?led=1');">&bull;</a>
    <!-- <a id="led0">&bull;</a> -->
    </span></p>
    <p>Buttons:<br />
    <!-- <span id="btn3">?</span> &nbsp; 
    <span id="btn2">?</span> &nbsp; 
    <span id="btn1">?</span> &nbsp;  -->
    <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: 但我不确定。我测试了我能想象到的所有类型的键。任何帮助都将受到欢迎。

4

0 回答 0