Bonjour, je suis nouveau dans le développement de l'iPhone. J'ai créé une application qui consomme des données du service Web. Et cela fonctionne très bien, mais j'ai un problème avec l'analyse.XML analyse - iPhone
Les données xml que je reçois du service Web est:
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: session_start() [<a href='function.session-start'>function.session-tart</a>]:
Cannot send session cookie - headers already sent by (output started at D:\xampp\htdocs\system
\application\controllers\isignin.php:4)</p>
<p>Filename: libraries/session.php</p>
<p>Line Number: 146</p>
</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at D:\xampp\htdocs\6d\system \application\controllers\isignin.php:4)</p>
<p>Filename: libraries/session.php</p>
<p>Line Number: 146</p>
</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\6d\system\application\controllers\isignin.php:4)</p>
<p>Filename: codeigniter/Common.php</p>
<p>Line Number: 360</p>
</div><?xml version="1.0" encoding="utf-8"?>
<xml><item><?xml version="1.0" encoding="UTF-8"?><newblock><name>abcde
</name><password>12345678</password></newblock></item></xml>
Voici ce que j'appelle de méthode connectionDidFinishLoading:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"DONE. Received Bytes: %d", [webData length]);
if (xmlParser)
{
[xmlParser release];
}
xmlParser = [[NSXMLParser alloc] initWithData: webData];
[xmlParser setDelegate: self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
[connection release];
[webData release];
}
Voici les méthodes d'analyse utilisées:
-(void) parser:(NSXMLParser *) parser
didStartElement:(NSString *) elementName
namespaceURI:(NSString *) namespaceURI
qualifiedName:(NSString *) qName
attributes:(NSDictionary *) attributeDict {
if([elementName isEqualToString:@"GetWeatherResult"])
{
if (!soapResults)
{
soapResults = [[NSMutableString alloc] init];
}
elementFound = YES;
}
}
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string
{
if (elementFound)
{
[soapResults appendString: string];
}
}
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"GetWeatherResult"])
{
//---displays the country---
NSLog(soapResults);
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Current Temperature!"
message:soapResults
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
[soapResults setString:@""];
elementFound = FALSE;
}
}
Ma requête est: Je veux extraire le tag "name" avec la valeur "ABCDE" à partir des données XML reçues.
Mais quand je recherche "nom" avec une valeur"ABCDE" dans les données XML ci-dessus reçues, analyseur ne peut pas trouver à cause de & qt, & lt etc.
1) Comment réparer mon NSMutableData pour avoir des valeurs normales (<,> etc.)? Toutes les fonctions intégrées de NSMutableData pour remplacer & lt, & gt avec <,>? Ou
2) Y at-il quelque chose manque (ou faire le mal) tout en générant les données XML du côté serveur ou que je manque quelque chose lors de l'analyse du côté client (sur iPhone) Ou
3) Toute autre solution résoudre le problème ci-dessus.
Merci d'avance.
Merci. J'ai déjà essayé ceci mais je ne peux pas passer la chaîne à l'analyseur. Je veux dire que l'objet NSStrin ne peut pas être transmis. IT donne une erreur pour ça. Nous devons passer l'objet NSData ou NSMutableData seulement à l'analyseur. – Prazi
ce que j'interprète de la question ur est que ce qui précède est les données xml qui u get ur et qui ... parsing donc je comprends évidemment que U ne peut pas passer chaîne à parser et passe NSData à parser .. mais sur l'analyse syntaxique, XML donnez les cordes et ensuite U peut utiliser la fonction ci-dessus donnée par moi ... et si je me trompe n'importe où dans mon interprétation de votre question .. alors je m'excuse et reprends ma réponse ... mais ensuite j'ai trouvé un lien pour u .. http://stackoverflow.com/questions/1813503/nsxml-replacing-with-lt –