Как получить CxmlElement при использовании XPath
-
28-09-2019 - |
Вопрос
Есть ли способ получить CXMLElement
назад, когда XPath запрашивает документ? То XCMLNode
Товар, возвращенный - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;
не содержит функций атрибутов.
Есть ли способ либо напрямую получить элемент, либо преобразовать узел в элемент?
Спасибо
Решение
Вы можете бросить его, но обязательно проверить тип первым:
for (CXMLNode *node in nodeArray)
{
if ([node kind] == CXMLElementKind)
{
CXMLElement *element = (CXMLElement *)node;
// do stuff with element
}
}
Другие советы
AFAIR CXMLELEMENT - это подкласс CXMLNODE. Если вы уверены, что XPath вернется CXMLELEMS, а затем просто отличайте CXMLNODE в CXMLELEMENT. В другом случае вы должны проверить тип узла, а затем бросить.
От TouchXml Documention:
NSArray *nodes = NULL;
// searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];
for (CXMLElement *node in nodes) {
...
}
Не связан с StackOverflow