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

È stato utile?

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
scroll top