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

本文关键字:HTML 获取 | 更新日期: 2023-09-27 18:29:22

我需要拆分这个/类似的字符串以获得VALUE

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

我可以做String.Split(">"),然后再做StringArr[1]。Split("<"),但这既不高效也不庞大。

做这件事的方法是什么?

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

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

您可以使用数组,如

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