0

我有以下数据

<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 的结果。

4

1 回答 1

2

尝试在第二个 XPath 的开头添加一个点,以使其识别为相对于 current 的 XPath rowNode

NSArray* rowCellNodes = [rowNode nodesForXPath:@".//Cell/Data" error:&error];
于 2014-08-22T03:07:23.287 回答