Получить содержимое тега HTML с помощью анализа - PullRequest
0 голосов
/ 29 марта 2012

Мне нужно разделить эту / похожую строку, чтобы получить ЗНАЧЕНИЕ

<a  href="javascript:void(0);" id="def_" name="color" rel="ml">VALUE</a>

Я могу сделать String.Split (">") , а затем еще StringArr [1] .Split ("<") </em>, но это не эффективно и громоздко.

Каким был бы способ сделать это?

Ответы [ 2 ]

4 голосов
/ 29 марта 2012

Вам нужен парсер , попытка разбить строку будет просто временным хаком.Посмотрите на HtmlAgilityPack

Для вашего примера HTML это будет выглядеть так:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(inputHtml);

var text = doc.DocumentNode
              .Descendants("a")
              .Where(x => x.Attributes["id"]!=null && 
                          x.Attributes["id"].Value == "def_")
              .First()
              .InnerText;
3 голосов
/ 29 марта 2012

вы можете использовать массив, например

split(new char[]{'<','>'}

пример

"<a  href='javascript:void(0);' id='def_' name='color' rel='ml'>VALUE</a>".Split(new char[]{'<','>'})

возвращает результат, например

a  href='javascript:void(0);' id='def_' name='color' rel='ml'  
VALUE 
/a

Это общее решение дляпроблема.Если вы вряд ли будете работать с HTML, , не используйте таким образом, а используйте специальные HTML парсеры.

...