Substring? or Parsing XML?

Discussion in 'iOS Programming' started by ilx.mac, Apr 10, 2009.

  1. macrumors member

    Mar 10, 2009
    Hi there,

    I went through the various substring methods like
    NSString *str1 = [theResponseString substringFromIndex:2]
    NSString *pathTrimmed = [theResponseString lastPathComponent];

    and also other methods from:

    But none of them fits my requirement.

    My String:

    Thisismyentirestringwithhtmltagtowardstheend<html><head><title>My Page</title></head><body>My web page</body></html>

    All I have to do is to get the complete html tag out of that string. Also, the position of the <HTML> tag will vary from time to time.

    Is that possible, can some one post their suggestions/code samples please?

    If not, I have to do it other way. I have an xml:

    <![CDATA[ <html><head><title>My Page</title></head><body>My web page</body></html> ]]>

    I have to parse the xml & retrieve the CDATA alone. I have written the parser method, but it fails to read the CDATA alone. It reads the <id>& <name> tags. Also all the other are inside some other node. But CDATA is not inside any node. I know that it is the problem. But i cant add a tag to that.

    Is there any way to parse the CDATA & retrieve the XML?

    Thanks in Advance!
  2. thread starter macrumors member

    Mar 10, 2009
    I did it some other way using NSScanner:

    NSString *stringBeforeHtml = nil, *theRest = nil, *temp = nil, *str = @"SomeString<html></html>";
    NSScanner *scanner = [[NSScanner alloc] initWithString:str];

    if([scanner scanUpToString:mad:"<html>" intoString:&stringBeforeHtml]) {

    // Get all the rest:
    if(![scanner isAtEnd])
    theRest = [str substringFromIndex:[scanner scanLocation]];

    // Or get everything until we have a </html>
    if(![scanner isAtEnd]) {
    [scanner scanUpToString:mad:"</html>" intoString:&theRest];
    [scanner scanString:mad:"</html>" intoString:&temp];
    theRest = [NSString stringWithFormat:mad:"%@%@", theRest, temp];

    [scanner release];

    and it worked.;)
  3. macrumors newbie

    Mar 30, 2009

Share This Page