Question

Y at-il un moyen d'obtenir un retour de CXMLElement quand un document XPath interrogation? L'élément de XCMLNode retourné par la - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; ne contient pas les fonctions des attributs.

Y at-il un moyen de soit obtenir directement un élément ou convertir le noeud à un élément?

Merci

Était-ce utile?

La solution

Vous pouvez lancer, mais assurez-vous de vérifier le type premier:

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

        // do stuff with element
    }
}

Autres conseils

AFAIR CXMLElement est une sous-classe de la CXMLNode. Si vous êtes sûr que le XPath retournera CXMLElements, puis juste jeter CXMLNode à CXMLElement. Dans d'autres cas, vous devez vérifier le type de nœud, puis jeté.

De touchXML documention:

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

for (CXMLElement *node in nodes) {
...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top