Come ottenere CXMLElement quando si utilizza XPath
-
28-09-2019 - |
Domanda
C'è un modo per ottenere un back CXMLElement
quando XPath interrogazione di un documento? L'articolo XCMLNode
restituito dal - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;
non contiene le funzioni attributi.
C'è un modo per ottenere direttamente un elemento o convertire il nodo di un elemento?
Grazie
Soluzione
È possibile lanci, ma essere sicuri di controllare il tipo di prima:
for (CXMLNode *node in nodeArray)
{
if ([node kind] == CXMLElementKind)
{
CXMLElement *element = (CXMLElement *)node;
// do stuff with element
}
}
Altri suggerimenti
AFAIR CXMLElement è una sottoclasse del CXMLNode. Se si è certi che il XPath tornerà CXMLElements, poi basta lanciare CXMLNode a CXMLElement. In altri casi si dovrebbe verificare il tipo di nodo e poi gettato.
Da TouchXML documention:
NSArray *nodes = NULL;
// searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];
for (CXMLElement *node in nodes) {
...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow