通过解析获取HTML标记的内容

时间:2012-03-29 19:53:23

标签: c# string split html-parsing

我需要拆分此/类似字符串以获取 VALUE

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

我可以 String.Split(“&gt;”),然后是另一个 StringArr [1] .Split(“&lt;”),但效率不高,笨重。

这样做的方法是什么?

2 个答案:

答案 0 :(得分:4)

你需要一个解析器,尝试拆分字符串只是一个临时的黑客攻击。查看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;

答案 1 :(得分:3)

您可以使用数组,例如

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解析器。