Comment obtenir CXMLElement lors de l'utilisation XPath
-
28-09-2019 - |
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
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