0

Если спарсил HTML код и в нём есть что подобное:

<script>"text1":"value1","text2":"value2","text3":"value3"</script>

Как вытаскивать нужные значения ?

Пользовался раньше подобным вариантом:

String Response = wc.DownloadString(ssilka);
Rate = System.Text.RegularExpressions.Regex.Match(Response, @"""text1"":([^<]+),""value1""").Groups[1].Value;

Но сейчас, встречается две одинаковые строки в одном <script></script> и регулярка вытаскивает в итоге огромную часть кода.

Как вытаскивать правильно из того что находится в <script></script> ?

Nick Proskuryakov
  • 3,732
  • 2
  • 16
  • 40
Xzizz
  • 1,592

2 Answers2

0

Попробуйте воспользоваться готовыми решениями. Например, есть jsoup - библиотека на Java, которая предназначена для разбора HTML-страниц, позволяя извлечь необходимые данные, используя DOM, CSS и методы в стиле jQuery. Есть порт на C#. Здесь можно ознакомиться с примерами (на Java).


Прежде чем задавать новые вопросы, настоятельно рекомендуется поискать

ru.stackoverflow.com/a/420355/203589

stackoverflow.com/a/18157325/5674802

Dmitresso
  • 350
0

Можно просто разбить с помощью String.Split(char) и перебрать в цикле, что-то вроде

using System.Xml;
...//прочий код программы
XmlNode script;//наш xml-узел
...//парсинг до xml-узлов

string[] sriptTextValuePairs = script.InnerText.Split(',');//побьём содержимое xml-узла на множество пар-подстрок
foreach(string tvPair in sriptTextValuePairs)//перебор пар
{
  string[] pair=tvPair.Split(':');//разобьём пару
  string text=pair[0].Trim('"');//вытащим значения
  string value=pair[1].Trim('"');
  ...//делаем что-то
};
Alias
  • 379