Как получить CXMLElement при использовании xpath

Есть ли способ получить CXMLElement назад, когда xpath запрашивает документ? XCMLNode предмет, возвращенный - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; не содержит функций атрибутов.

Есть ли способ либо получить элемент напрямую, либо преобразовать узел в элемент?

Спасибо

2 ответа

Решение

Вы можете разыграть его, но не забудьте сначала проверить тип:

for (CXMLNode *node in nodeArray)
{
    if ([node kind] == CXMLElementKind)
    {
        CXMLElement *element = (CXMLElement *)node;

        // do stuff with element
    }
}

AFAIR CXMLElement является подклассом CXMLNode. Если вы уверены, что xpath вернет CXMLElements, просто приведите CXMLNode к CXMLElement. В другом случае вы должны проверить тип узла и затем привести.

Из документации touchXML:

NSArray *nodes = NULL;
//  searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];

for (CXMLElement *node in nodes) {
...
}
Другие вопросы по тегам