我怎样才能获得元素头或h1

时间:2015-12-03 07:00:57

标签: c# html element

我想获得标签<div>内的头部值。但我仍然无法得到它。

var source = inputXDoc.Descendants(GetNamespace(ref namespace2, "").GetName("body"));
if (source.Descendants(GetNamespace(ref namespace2, "").GetName("div")).Any())
{
    var introduced5 = inputXDoc.Descendants(GetNamespace(ref namespace2, "").GetName("body"));
    if (introduced5.Descendants(GetNamespace(ref namespace2, "").GetName("div")).First().Attributes("id").Any())
    {
        var introduced6 = inputXDoc.Descendants(GetNamespace(ref namespace2, "").GetName("body"));
        //_chapterName = introduced6.Descendants(GetNamespace(ref namespace2, "").GetName("div")).First().Attributes("id").First().Value;
        _chapterName = introduced6.Descendants(GetNamespace(ref namespace2, "").GetName("div")).First().Element("h")?.Value;
    }
}

下面是html,我想要得到的值是 /狐狸/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="" xmlns="">
    <head>
        <title>De title</title>
        <link rel="stylesheet" type="text/css" href="Digital.css"/>
    </head>
    <body>
        <h1>
            <a id="p7"/>
            <a id="ch1" href="005_inhoud.html#ch1">/The fox/</a>
        </h1>
        <p class="indent">the quick brown fox jump over the lazy dog</p>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

您可以简单地使用XPath扩展来提取元素:

using System.Xml.XPath;

string title = inputXDoc.XPathSelectElement("//a[@id='ch1']").Value;

这个XPath的字面意思是:

  

属性a等于id

的任何ch1元素

这是the working demo