Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 24th, 2012  |  syntax: None  |  size: 11.36 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Select Tags when parsing XML with NSXML Parser Objective-C
  2. 2012-03-02 20:04:08.576 XML[4497:f803] stories :(
  3.     {
  4.     echeance = "Mars 2012n    ";
  5.     settle = "205.25n      205.5n      206n      205n      202.75n      204n      204.75n      206.5n      206.25n      210n      ";
  6.     variation = "-0.25n    n    -0.5n    n    1n    n    2.25n    n    -1.25n    n    -0.75n    n    -1.75n    n    0.25n    n    -3.75n    n    1.5n    n    ";
  7. },
  8.     {
  9.     echeance = "Juin 2012n    ";
  10.     settle = "207.75n      207.5n      207.25n      206n      204.75n      205.5n      206.25n      207.25n      206.5n      210.5n      ";
  11.     variation = "0.25n    n    0.25n    n    1.25n    n    1.25n    n    -0.75n    n    -0.75n    n    -1n    n    0.75n    n    -4n    n    0.75n    n    ";
  12. },
  13.     {
  14.     echeance = "AoU00fbt 2012n    ";
  15.     settle = "209.75n      209.25n      208.5n      207.25n      205.75n      207.25n      207.75n      208.75n      208.5n      211.75n      ";
  16.     variation = "0.5n    n    0.75n    n    1.25n    n    1.5n    n    -1.5n    n    -0.5n    n    -1n    n    0.25n    n    -3.25n    n    0.25n    n    ";
  17. },
  18.     {
  19.     echeance = "Novembre 2012n    ";
  20.     settle = "188.25n      188n      186.75n      186.25n      184.75n      184.75n      186.5n      186n      185n      188.5n      ";
  21.     variation = "0.25n    n    1.25n    n    0.5n    n    1.5n    n    0n    n    -1.75n    n    0.5n    n    1n    n    -3.5n    n    1n    n    ";
  22. },
  23.     {
  24.     echeance = "Janvier 2013n    ";
  25.     settle = "189.75n      189n      189.5n      188.75n      187.25n      187.25n      188.5n      188.5n      187.5n      190n      ";
  26.     variation = "0.75n    n    -0.5n    n    0.75n    n    1.5n    n    0n    n    -1.25n    n    0n    n    1n    n    -2.5n    n    0n    n    ";
  27. },
  28.     {
  29.     echeance = "Mars 2013n    ";
  30.     settle = "191n      191n      191.5n      190.75n      189.25n      189.25n      190.5n      190.5n      189.5n      192n      ";
  31.     variation = "0n    n    -0.5n    n    0.75n    n    1.5n    n    0n    n    -1.25n    n    0n    n    1n    n    -2.5n    n    1n    n    ";
  32. },
  33.     {
  34.     echeance = "Juin 2013n    ";
  35.     settle = "194.5n      194.5n      195.5n      194.75n      193.25n      193.25n      194.5n      194.5n      193.5n      196n      ";
  36.     variation = "0n    n    -1n    n    0.75n    n    1.5n    n    0n    n    -1.25n    n    0n    n    1n    n    -2.5n    n    3n    n    ";
  37. }
  38.        
  39. 2012-03-02 20:04:08.576 XML[4497:f803] stories :(
  40.     {
  41.     echeance = "Mars 2012";
  42.     settle = "205.25"
  43.     variation = "-0.25"
  44. },
  45.     {
  46.     echeance = "Juin 2012";
  47.     settle = "207.75"
  48.     variation = "0.25"
  49.        
  50. #import "XMLParser.h"
  51.  
  52. @implementation XMLParser
  53.  
  54. @synthesize stories;
  55. @synthesize delegate;
  56.  
  57. - (void)parseXMLAtURL:(NSURL*)path
  58.  
  59. {
  60.     stories = [[NSMutableArray alloc] init];
  61.  
  62.     textParser = [[NSXMLParser alloc] initWithContentsOfURL:path];
  63.  
  64.     [textParser setDelegate:self];
  65.  
  66.     [textParser parse];
  67.  
  68. }
  69.  
  70.  
  71. - (void)parserDidStartDocument:(NSXMLParser *)parser
  72. {
  73.  
  74. }
  75.  
  76. - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
  77.  
  78. {
  79.     NSString * errorString = [NSString stringWithFormat:@"Impossible de parser le document (Code erreur %i )", [parseError code]];
  80.  
  81.     NSLog(@"erreur de parsing XML: %@", errorString);
  82.  
  83.     UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Erreur lors du chargement" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
  84.  
  85.     [errorAlert show];
  86.     [errorAlert release];
  87.  
  88. }
  89.  
  90. - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
  91. {
  92.     if(currentElement)
  93.     {
  94.         [currentElement release];
  95.         currentElement = nil;
  96.     }
  97.     currentElement = [elementName copy];
  98.  
  99.     if ([elementName isEqualToString:kExpiry])
  100.  
  101.     {
  102.  
  103.         if(item)
  104.         {
  105.             [item release];
  106.             item = nil;
  107.         }
  108.         if(currentExpiry)
  109.         {
  110.             [currentExpiry release];
  111.             currentExpiry = nil;
  112.         }
  113.         if(currentSettle)
  114.         {  
  115.             [currentSettle release];
  116.             currentSettle = nil;
  117.         }
  118.         if(currentVariation)
  119.         {
  120.             [currentVariation release];
  121.             currentVariation = nil;
  122.         }
  123.  
  124.         item = [[NSMutableDictionary alloc] init];
  125.         currentVariation = [[NSMutableString alloc] init];
  126.         currentSettle = [[NSMutableString alloc] init];
  127.         currentExpiry = [[NSMutableString alloc] initWithFormat:[attributeDict objectForKey:@"nom"]];
  128.  
  129.  
  130.     }
  131. }
  132.  
  133. - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
  134.  
  135. {
  136.     if ([elementName isEqualToString:kExpiry])
  137.  
  138.     {
  139.         [item setObject:currentExpiry forKey:kExpiry];
  140.         [item setObject:currentSettle forKey:kCloture];
  141.         [item setObject:currentVariation forKey:kChange];
  142.  
  143.         [stories addObject:item];
  144.  
  145.     }  
  146.     //NSLog(@"compteur : %i",compteur);
  147.  
  148. }
  149.  
  150. - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
  151.  
  152. {
  153.  
  154.     // on sauve les éléments de l' echeancepour l'item en cours
  155.     if ([currentElement isEqualToString:kCloture])
  156.         [currentSettle appendString:string];
  157.     else if ([currentElement isEqualToString:kExpiry])
  158.         [currentExpiry appendString:string];
  159.     else if ([currentElement isEqualToString:kChange])
  160.         [currentVariation appendString:string];
  161. }
  162.  
  163. - (void)parserDidEndDocument:(NSXMLParser *)parser
  164.  
  165. {
  166.  
  167.     NSLog(@"C’est fini !");
  168.     NSLog(@"stories a %d echeances", [stories count]);
  169.     NSLog(@"stories :%@", stories);
  170.     [self performSelectorOnMainThread:@selector(tellTheDelegateItIsFinished) withObject:nil waitUntilDone:NO];
  171. }
  172.  
  173. - (void) tellTheDelegateItIsFinished {
  174.     [delegate xmlParserdidFinishParsing];  
  175. }
  176.  
  177. - (void) dealloc
  178.  
  179. {
  180.     [stories release];
  181.     [textParser release];
  182.     [item release];
  183.     [currentVariation release];
  184.     [currentExpiry release];
  185.     [currentSettle release];
  186.  
  187.     [super dealloc];
  188.  
  189. }
  190. @end
  191.        
  192. #import "XMLParser.h"
  193.  
  194. @implementation XMLParser
  195.  
  196. @synthesize stories;
  197. @synthesize delegate;
  198.  
  199. - (void)parseXMLAtURL:(NSURL*)path
  200.  
  201. {
  202.     stories = [[NSMutableArray alloc] init];
  203.  
  204.     textParser = [[NSXMLParser alloc] initWithContentsOfURL:path];
  205.  
  206.     [textParser setDelegate:self];
  207.  
  208.     [textParser parse];
  209.  
  210. }
  211.  
  212.  
  213. - (void)parserDidStartDocument:(NSXMLParser *)parser
  214. {
  215.  
  216. }
  217.  
  218. - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
  219.  
  220. {
  221.     NSString * errorString = [NSString stringWithFormat:@"Impossible de parser le document (Code erreur %i )", [parseError code]];
  222.  
  223.     NSLog(@"erreur de parsing XML: %@", errorString);
  224.  
  225.     UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Erreur lors du chargement" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
  226.  
  227.     [errorAlert show];
  228.     [errorAlert release];
  229.  
  230. }
  231.  
  232. - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
  233. {
  234.     //compteur = 0;
  235.  
  236.     if(currentElement)
  237.     {
  238.         [currentElement release];
  239.         currentElement = nil;
  240.     }
  241.     currentElement = [elementName copy];
  242.  
  243.     if ([elementName isEqualToString:kExpiry])
  244.  
  245.     {
  246.  
  247.         /*if(item)
  248.         {
  249.             [item release];
  250.             item = nil;
  251.         }
  252.         if(currentExpiry)
  253.         {
  254.             [currentExpiry release];
  255.             currentExpiry = nil;
  256.         }
  257.         if(currentSettle)
  258.         {  
  259.             [currentSettle release];
  260.             currentSettle = nil;
  261.         }
  262.         if(currentVariation)
  263.         {
  264.             [currentVariation release];
  265.             currentVariation = nil;
  266.         }
  267.         */
  268.  
  269.         item = [[NSMutableDictionary alloc] init];
  270.  
  271.         currentExpiry = [[NSMutableString alloc] initWithFormat:[attributeDict objectForKey:@"nom"]];
  272.  
  273.  
  274.     }
  275.  
  276.     else if ([elementName isEqualToString:kDate])
  277.         currentDate = [[NSMutableString alloc] initWithFormat:[attributeDict objectForKey:@"value"]];
  278.  
  279.     else if ([elementName isEqualToString:kCloture])
  280.         currentSettle = [[NSMutableString alloc] init];
  281.  
  282.     else if ([elementName isEqualToString:kChange])
  283.         currentVariation = [[NSMutableString alloc] init];
  284.  
  285.  
  286. }
  287.  
  288. - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
  289.  
  290. {
  291.     if ([elementName isEqualToString:kExpiry])
  292.  
  293.     {
  294.         [item setObject:currentExpiry forKey:kExpiry];
  295.         [item setObject:currentDate forKey:kDate];
  296.         NSLog(@"CurrentExpiry : %@",currentExpiry);
  297.         [item setObject:currentSettle forKey:kCloture];
  298.         NSLog(@"CurrentSettle : %@",currentSettle);
  299.         [item setObject:currentVariation forKey:kChange];
  300.         NSLog(@"CurrentVariation : %@",currentVariation);
  301.  
  302.         //if(compteur == 0)
  303.         [stories addObject:item];
  304.  
  305.         //NSLog(@"compteur before : %i, %@",compteur, elementName);
  306.         //compteur++;
  307.         //NSLog(@"compteur after : %i",compteur);
  308.  
  309.     }  
  310.  
  311.  
  312.  
  313. }
  314.  
  315. - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
  316.  
  317. {
  318.  
  319.     // on sauve les éléments de l' echeancepour l'item en cours
  320.     if ([currentElement isEqualToString:kCloture])
  321.         [currentSettle appendString:string];
  322.  
  323.     else if ([currentElement isEqualToString:kExpiry])
  324.         [currentExpiry appendString:string];
  325.  
  326.     else if ([currentElement isEqualToString:kChange])
  327.         [currentVariation appendString:string];
  328.  
  329.     else if ([currentElement isEqualToString:kDate])
  330.         [currentDate appendString:string];
  331. }
  332.  
  333. - (void)parserDidEndDocument:(NSXMLParser *)parser
  334.  
  335. {
  336.  
  337.     NSLog(@"C’est fini !");
  338.     NSLog(@"stories a %d echeances", [stories count]);
  339.     NSLog(@"stories :%@", stories);
  340.     //[self performSelectorOnMainThread:@selector(tellTheDelegateItIsFinished) withObject:nil waitUntilDone:NO];
  341. }
  342.  
  343. - (void) tellTheDelegateItIsFinished {
  344.     [delegate xmlParserdidFinishParsing];  
  345. }
  346.  
  347. - (void) dealloc
  348.  
  349. {
  350.     [stories release];
  351.     [textParser release];
  352.     [item release];
  353.     [currentVariation release];
  354.     [currentExpiry release];
  355.     [currentSettle release];
  356.  
  357.     [super dealloc];
  358.  
  359. }
  360. @end
  361.        
  362. > 2012-03-03 15:47:40.164 XML[6053:f803] stories :(
  363. >         {
  364. >         date = "20/02/2012n      ";
  365. >         echeance = "Mars 2012n    ";
  366. >         settle = "210n      ";
  367. >         variation = "1.5n    n    ";
  368. >     },
  369. >         {
  370. >         date = "20/02/2012n      ";
  371. >         echeance = "Juin 2012n    ";
  372. >         settle = "210.5n      ";
  373. >         variation = "0.75n    n    ";
  374. >     },
  375. >         {
  376. >         date = "20/02/2012n      ";
  377. >         echeance = "AoU00fbt 2012n    ";
  378. >         settle = "211.75n      ";
  379. >         variation = "0.25n    n    ";
  380. >     },
  381. >         {
  382. >         date = "20/02/2012n      ";
  383. >         echeance = "Novembre 2012n    ";
  384. >         settle = "188.5n      ";
  385. >         variation = "1n    n    ";
  386. >     },
  387. >         {
  388. >         date = "20/02/2012n      ";
  389. >         echeance = "Janvier 2013n    ";
  390. >         settle = "190n      ";
  391. >         variation = "0n    n    ";
  392. >     },
  393. >         {
  394. >         date = "20/02/2012n      ";
  395. >         echeance = "Mars 2013n    ";
  396. >         settle = "192n      ";
  397. >         variation = "1n    n    ";
  398. >     },
  399. >         {
  400. >         date = "20/02/2012n      ";
  401. >         echeance = "Juin 2013n    ";
  402. >         settle = "196n      ";
  403. >         variation = "3n    n    ";
  404. >     } )