Estoy usando TouchXml debido a las limitaciones dadas de NSXML en el iPhone real. De todos modos, estoy empezando a cabo con Objective-C, vengo de un fondo # C, y se sentía como aprender algo new..anyhow .. aquí está mi archivo xml ...Obteniendo el valor de un Elemento en Cocoa usando TouchXML
<?xml version="1.0" encoding="utf-8"?>
<FundInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/webservices">
<FundsReleaseDate>2009-02-11T00:00:00</FundsReleaseDate>
<FundValue>7800</FundValue>
<FundShares>1000</FundShares>
</FundInfo>
Estoy intentando para obtener 7800, es decir, FundValue. Alguien me puede apuntar en la dirección correcta, estoy usando el TouchXml CXMLDocument y myParser es de tipo CXMLDocument, he tratado
NSArray *nodes = [myParser nodesForXPath:@"//FundInfo" error:&err];
Básicamente nodos evalúa a cero
if ([nodes count] > 0) {
amount = [nodes objectAtIndex:1];
}
ACTUALIZACIÓN 1: He abandonado analizando usando XPath, y lo he reemplazado con NSURLRequest, así que ahora tengo todo el XML en una cadena, pero mi grosera introducción a Object-C continúa ... Me acabo de dar cuenta de lo malcriado que me he vuelto al .NET BCL donde cosas como Regex son tan fácilmente disponibles.
UPDATE2: He descubierto cómo usar RegexKitLite para regex.
Entonces, la pregunta ahora es, ¿cómo obtengo el "7800" dentro de FundValue, que ahora es una gran cadena? He confirmado que lo tengo en mi NSString escribiéndolo usando NSLog.
gracias por la respuesta, estoy recibiendo un choque con el siguiente mensaje de excepción:.. [CXMLElement isEqualToString :]: selector no reconocido enviado a la instancia – kd7
Apuesto a que todo esto está relacionado con el hecho de que el servicio web que estoy intentando t o Consumir está basado en .NET, pero desafortunadamente no tengo control sobre él, he buscado en Google y parece que el atributo xmlns es la causa de todos los problemas. – kd7
No uso TouchXML en ningún proyecto, aunque utilizo libxml2 (que es para lo que TouchXML es un contenedor), por lo que la biblioteca subyacente funciona. No me sorprendería si esta no es una ruta de código bien probada, es posible que deba arreglar algo en TouchXML. –