Pregunta

¿Hay una manera de conseguir una vuelta CXMLElement cuando XPath consulta de un documento? El elemento XCMLNode devuelto por el - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; no contiene las funciones de atributos.

¿Hay una manera de conseguir ya sea directamente o convertir un elemento del nodo a un elemento?

Gracias

¿Fue útil?

Solución

Puede lanzas, pero asegúrese de comprobar el tipo de primera:

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

        // do stuff with element
    }
}

Otros consejos

AFAIR CXMLElement es una subclase de la CXMLNode. Si está seguro de que el XPath volverá CXMLElements, a continuación, sólo echar CXMLNode a CXMLElement. En otro caso, usted debe comprobar el tipo de nodo y luego fundido.

De touchXML documention:

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

for (CXMLElement *node in nodes) {
...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top