2013-12-02 3 views
1

Для программы, над которой я работаю, мне нужно получить информацию из определенной области из онлайн-документа xml. Прямо сейчас я сохранил xml в виде строки, а затем воспользуюсь press=xml.substr(1906,5);, чтобы получить то, что мне нужно. Это одна строка, из которой я вывожу информацию из: <pressure_in>30.17</pressure_in> Проблема в том, что если значение между длиной больше указанной длины, (в этом случае 5 символов), я не могу получить желаемое значение. Как я могу получить это надежно?Получить определенную часть текста из строки в C

+3

[? Используйте реальный XML-парсер] (HTTP : //stackoverflow.com/questions/9387610/what-xml-parser-should-i-use-in-c) – WhozCraig

+0

Если вы можете получить эту строку без полноразмерного анализатора XML, просто используйте простой регулярный expre ssion. – turnt

ответ

1

Рассматривали ли вы что-то вроде этого:

#include <stdio.h> 
#include <string.h> 
#include <ctype.h> 

int main() 
{ 
    // sample string below: 
    char* xmlText = "<pressure_in>30.17134</pressure_in>"; 
    int n = strlen(xmlText); 
    for (int i = 0; i<n; i++) { 
     if (isdigit(xmlText[i]) || xmlText[i] == '.') { 
      // store result or just print: 
      printf("%c",xmlText[i]); 
     } 
    } 
    printf("\n") 
    return 0; 
} 

Выход:

30.17134 
+0

Спасибо, это помогло мне выяснить, что делать. – Cameron346

1

Сначала преобразуйте строку в структуру xml, а затем извлеките то, что вам нужно, с помощью селектора XPath. Очень простой пример можно найти здесь:

http://xmlsoft.org/tutorial/apd.html

Смежные вопросы