htmlagility - GetElementbyId错误

时间:2016-05-10 07:32:21

标签: c# html-agility-pack

我在c#中有一个列表。我使用该列表来存储ID。我的任务是检索ID的href。

<item href="Text/Cover.xhtml" id="Cov" media-type="application/xhtml+xml" />
    <item href="Text/Back.xhtml" id="Back" media-type="application/xhtml+xml" />

以上是html代码

List<string> list = new List<string>();

foreach (string value in list)
                {
                    MessageBox.Show(value);
                    HtmlAgilityPack.HtmlDocument document2 = new HtmlAgilityPack.HtmlDocument();
                    document2.Load(@"C:\try.html");

                    string tag = document2.GetElementbyId(value).Name;
                    string href = document2.GetElementbyId(value).GetAttributeValue("href", "");
                    MessageBox.Show(href);
                }

上面的代码不起作用。

但是当我输入ID时,下面的代码工作正常。它为什么有效?上面的代码只是传递列表的值。并且列表的第一个值是“cov”。那么差异呢?非常感谢。我现在真的很困惑。问题是什么

string tag = document2.GetElementbyId("cov").Name;
                        string href = document2.GetElementbyId("cov").GetAttributeValue("href", "");

1 个答案:

答案 0 :(得分:0)

我已经找到了问题

列表中的项目包含空格。所以我需要trim()以使其工作

string tag = document2.GetElementbyId(value.Trim()).Name;
                    string href = document2.GetElementbyId(value.Trim()).GetAttributeValue("href", "");