来自iOS的XPath调用无法正常工作

时间:2014-08-22 02:42:45

标签: ios xml xpath gdataxml

我有以下数据

<Table>
<Row>
    <Cell><Data>Row Labels</Data></Cell>
    <Cell><Data>Searches</Data></Cell>
    <Cell><Data>Purchases</Data></Cell>
    <Cell><Data>CRatio</Data></Cell>
    <Cell><Data>AvgReturn</Data></Cell>
    <Cell><Data>Commission</Data></Cell>
</Row>
<Row>
    <Cell><Data>2013</Data></Cell>
    <Cell><Data>2257224</Data></Cell>
    <Cell><Data>18574</Data></Cell>
    <Cell><Data>8.2286915255198427E-3</Data></Cell>
    <Cell><Data>43.459007223015384</Data></Cell>
    <Cell><Data>102390.82995242</Data></Cell>
</Row>
<Row>
    <Cell><Data>2014</Data></Cell>
    <Cell><Data>5351610</Data></Cell>
    <Cell><Data>43035</Data></Cell>
    <Cell><Data>8.0415052666393851E-3</Data></Cell>
    <Cell><Data>40.420168915503282</Data></Cell>
    <Cell><Data>280677.31032664998</Data></Cell>
</Row>
<Row>
    <Cell><Data>Grand Total</Data></Cell>
    <Cell><Data>7608834</Data></Cell>
    <Cell><Data>61609</Data></Cell>
    <Cell><Data>8.0970356299007173E-3</Data></Cell>
    <Cell><Data>41.336323742293686</Data></Cell>
    <Cell><Data>383068.14027907007</Data></Cell>
</Row>

什么是使用XPath在数据时获取数据之一然后获取其中的单个元素的最佳方法

我试过以下......

enter  NSArray *rowNodes = [doc nodesForXPath:@"/Table/Row" error:&error];

BOOL doBreak = NO;
@try {


    int iRow = 0;
    for (GDataXMLElement *rowNode in rowNodes) {
        iRow++;

        //get cell elements of the row

        NSArray* rowCellNodes = [rowNode nodesForXPath:@"//Cell/Data" error:&error];

但是当我这样做时,我正确地得到了rowNodes,但是在for循环中没有得到rowCellNodes的结果。

1 个答案:

答案 0 :(得分:2)

尝试在第二个XPath的开头添加一个点,使其被识别为当前rowNode的相对XPath:

NSArray* rowCellNodes = [rowNode nodesForXPath:@".//Cell/Data" error:&error];