2016-05-10 2 views
0

У меня есть список в C#. Я использовал список для хранения идентификатора. моя задача - получить href идентификатора.htmlagility - GetElementbyId error

<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». так в чем разница? Спасибо большое. Im действительно запутался прямо сейчас. Что проблема

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

Каково было сообщение об ошибке? – har07

+0

Ну, может быть, вы забыли какой-то код, но в вашем текущем фрагменте ваш список всегда пуст. Не хотите добавить строку типа 'list.add (" cov ")'? – bviale

+0

@ har07 он говорит {"Ссылка на объект не установлена ​​в экземпляр объекта."} – knowme

ответ

0

я уже нашел проблему

элементы в списке содержит пустое пространство. поэтому мне нужна обрезка(), чтобы она работала

string tag = document2.GetElementbyId(value.Trim()).Name; 
        string href = document2.GetElementbyId(value.Trim()).GetAttributeValue("href", ""); 
Смежные вопросы