我正在阅读HTML,目的是从中提取 1>}的内容。
以下标记由DevExpress RichEditControl
生成<body>
根据this answer关于如何阅读文档的示例,我编写了以下函数:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>
</title>
<style type="text/css">
.cs95E872D0{text-align:left;text-indent:0pt;margin:0pt 0pt 0pt 0pt}
.csCF6BBF71{color:#000000;background-color:transparent;font-family:Times New Roman;font-size:12pt;font-weight:normal;font-style:normal;}
</style>
</head>
<body>
<p class="cs95E872D0"><span class="csCF6BBF71">Content goes here</span></p></body>
</html>
似乎它应该在理论上起作用,但在实践中,LINQ查询不返回private string ParseHtml(string html)
{
XDocument doc = XDocument.Parse(html);
return doc.Elements("html").Single().Element("body").Value;
}
的结果
我是不是在这里?如何阅读html文档并提取我需要的内容?
答案 0 :(得分:1)
可能是因为您需要添加命名空间:
private string ParseHtml(string html)
{
XNamespace xmlns= "http://www.w3.org/1999/xhtml";
XDocument doc = XDocument.Parse(html);
return doc.Element(xmlns+"html").Element(xmlns+"body").Value;
}
或者:
return doc.Descendants(xmlns+"body").Single().Value;
解析html的一种好方法是使用HTML Agility Pack