C# 在XDocument中读取html字符串时没有html元素

C# 在XDocument中读取html字符串时没有html元素,c#,html,linq,linq-to-xml,C#,Html,Linq,Linq To Xml,我阅读HTML的目的只是从中提取的内容 以下标记由 从理论上看,它应该可以工作,但在实践中,LINQ查询不会返回.Elements(“html”) 我是不是太离谱了?如何读取html文档并提取所需内容?可能是因为您需要添加名称空间: private string ParseHtml(string html) { XNamespace xmlns= "http://www.w3.org/1999/xhtml"; XDocument doc = XDocument.Parse(

我阅读HTML的目的只是从中提取
的内容

以下标记由

从理论上看,它应该可以工作,但在实践中,LINQ查询不会返回
.Elements(“html”)


我是不是太离谱了?如何读取html文档并提取所需内容?

可能是因为您需要添加名称空间:

 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;
 }
或:


解析html的另一个好方法是使用

只添加
XNamespace
有一个GetName方法,XName也有一个get方法。而不是硬编码名称空间doc.Root.GetDefaultNamespace();将为您获取“”并且如果您在元素中没有名称空间,它将起作用。
private string ParseHtml(string html)
{
    XDocument doc = XDocument.Parse(html);
    return doc.Elements("html").Single().Element("body").Value;
}
 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;