HTMLAgility Pack 找不到 PageMap 标签

HTMLAgility Pack cannot find PageMap tag

我正在使用 HTMLAgility 包从 HTML 页面获取有关文章的信息。我能够在整个文档中找到我想要的任何内容,但出于某种原因,无论我做什么,我都找不到 PageMap 对象。我创建了一个测试文档来隔离 PageMap,但仍然没有成功。

这是测试HTML:

<html>
    <head>

        <PageMap>
            <DataObject type="document">
                <Attribute name="article_title">Test Title</Attribute>
                <Attribute name="article_publication_name">Test Publication Name</Attribute>
                <Attribute name="article_author">Test Authro | The Test</Attribute>
                <Attribute name="article_description">A test of test and test test test!</Attribute>
                <Attribute name="image_src">http://www.google.com</Attribute>
                <Attribute name="article_comments">0</Attribute>
                <Attribute name="article_date_original">10/31/2015</Attribute>
                <Attribute name="article_date_updated">10/31/2015</Attribute>
            </DataObject>
        </PageMap>


    </head>
    <body>
        test
    </body>
</html>

这是我使用的代码:

string strPageHTML = File.ReadAllText(@"test.htm");

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

HtmlNode htmnArticle = doc.DocumentNode.SelectSingleNode("//PageMap");
tbMessagePreview.Text = htmnArticle.InnerHtml;

实时或测试 HTML 都可以正常加载,但 htmnArticle 节点始终为空。如有任何建议,我们将不胜感激。

使用//pagemap(HtmlAgilityPack 将节点规范化为小写 - HTML Agility Pack Parsing With Upper & Lower Case Tags?):

HtmlNode htmnArticle = doc.DocumentNode.SelectSingleNode("//pagemap");
tbMessagePreview.Text = htmnArticle.InnerHtml;

旁注:查看 doc.DocumentNode.InnerHtml 有助于了解节点是如何规范化的。