Как получить 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) {
...
}