开发者

parsing the value in between two XML tags

开发者 https://www.devze.com 2023-01-11 14:04 出处:网络
I know this one has been asked before, however I can\'t seem to find a suitable solution, so I \'ll state the problem:

I know this one has been asked before, however I can't seem to find a suitable solution, so I 'll state the problem:

I have a string of characters that is similar to an XML file. It's not an XML string, but it has opening and closing tags. All the information resides in one single line, for example:

<user>username</username>random data;some more random data<another tag>data</anothertag>randomdata;<mydata>myinfo</mydata>so开发者_高级运维me more random data....

etc...

I am trying to read ONLY what's in between <mydata></mydata>. Any way to just parse this?

thanks, code is appreciated.


I would just use strstr():

char * get_value(const char *input)
{
  const char *start, *end;

  if((start = strstr(input, "<mydata>")) != NULL)
  {
    start += strlen("<mydata>");
    if((end = strstr(start, "</mydata>")) != NULL)
    {
      char *out = malloc(end - start + 1);
      if(out != NULL)
      {
        memcpy(out, start, (end - start));
        out[end - start] = '\0';
        return out;
      }
    }
  }
  return NULL;
}

Note that the above is untested, written directly into the SO edit box. So, it's almost guaranteed to contain at least one off-by-one error.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号