До обработки
... <div id="test">Текст</div> ... |
Применяем функцию
DataString = ParseString(DataString, "<div id=\"test\">", "</div>"); |
И получаем
Текст |
Данная функция идет от начала текста или кода WEB документа (DataString), находит StartMask, запоминает позицию. От этой позиции дальше ищет EndMask. В случае, если обе маски найдены, берет текст, расположенный между ними.
Таким образом можно легко извлекать различные данные из HTML кода WEB документа. Другими словами: парсить информацию с сайтов. Погоду, курсы валют и прочее…
Сама функция
String ParseString(String DataString, String StartMask, String EndMask) { int i = 0; int j = 0; int SL = DataString.length(); uint8_t founded = 0; int StartPos = -1; String ParseResult = ""; if ( (DataString == "") || (StartMask == "") || (EndMask == "")) { return(""); } while (i<SL) { if (DataString.charAt(i) == StartMask.charAt(0)) { j = 1; StartPos = i; while (j<StartMask.length()) { if (DataString.charAt(i+j) != StartMask.charAt(j)) { j = StartMask.length(); } j++; } if (j == StartMask.length()) { founded = 1; i = SL; } } i++; } if (founded == 1) { i = StartPos + StartMask.length(); while (i<SL) { if (DataString.charAt(i) == EndMask.charAt(0)) { int j = 1; while (j<EndMask.length()) { if (DataString.charAt(i+j) != EndMask.charAt(j)) { j = EndMask.length(); } j++; } if (j == EndMask.length()) { ParseResult = DataString.substring(StartPos+StartMask.length(),i+j-EndMask.length()); i = SL; } } i++; } } return(ParseResult); } |
