2016-05-10 8 views
0

私はC#でリストを持っています。私はIDを格納するためにリストを使いました。私の仕事は、IDのhrefを取得することです。上記htmlagility - GetElementbyIdエラー

<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", ""); 
+0

正確に何がエラーメッセージでしたか? – har07

+0

あなたはいくつかのコードを忘れていたかもしれませんが、現在のスニペットではあなたのリストは常に空です。 'list.add(" cov ")'のような行を追加したくないのですか? – bviale

+0

@ har07それは{オブジェクトリファレンスがオブジェクトのインスタンスに設定されていません}} – knowme

答えて

0

は、私はすでに問題

リストの項目に空白が含まれていました。だから私はそれを動作させるためにtrim()が必要です

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