Как построить запрос Xpath в target-c, чтобы получить все TR, кроме первого? - PullRequest
1 голос
/ 02 марта 2011

В настоящее время HTML-код, который я анализирую, выглядит примерно так

NSString* markup = [NSString stringWithFormat:@"
<html>
    <head>
        <title>hi</title>
    </head>
    <body>
        <table id='ctl00_ContentPlaceHolder1_dgAppointmentSearchResult'>
            <tr>
                <th>fail</th>
            </tr>
            <tr>
                <td>1</td>
                <td>2</td>
            </tr>
            <tr>
                <td>3</td>
                <td>4</td>
            </tr>
        </table>
    </body>
</html>"];

Далее я пытаюсь получить каждый TR (чтобы я мог достичь каждого # 2 TD внутри каждого TR), за исключением первого TRTH внутри него, поэтому я хочу этого избежать.

Пока у меня есть следующее, но я замечаю, что оно тянет только определенную комбинацию TR / TD .. не каждый из них: (

NSData *data = [markup dataUsingEncoding:NSUTF8StringEncoding];
TFHpple* xpathParser = [[TFHpple alloc] initWithHTMLData:data];
NSArray *elements  = [xpathParser search:@"
//table[
   @id='ctl00_ContentPlaceHolder1_dgAppointmentSearchResult'
]/tr[2]/td[2]
"];
TFHppleElement *element = [elements objectAtIndex:0];
NSString *content = [element content];  
[xpathParser release];
[data release];

Любая помощь для новичка Xpath?

1 Ответ

3 голосов
/ 02 марта 2011

Вы можете использовать либо:

//table[@id='ctl00_ContentPlaceHolder1_dgAppointmentSearchResult']/tr
    [position() > 1]/td[2]

или даже более семантически:

//table[@id='ctl00_ContentPlaceHolder1_dgAppointmentSearchResult']/tr
    [not(th)]/td[2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...