2016-12-10 6 views
0

だから私はこのコードをオンラインですべてがそれで動作しているが、それは私が探しているdivクラスを示しますが、すべてのテキストを削除します。どんな考え?相続人は何をその出力の例...innertext htmlを取得できません。c#

<div class="marquee"><img src="logo.png" /></div> 
<div id="joke"> 
    <div id="setup" class="exit-left"></div> 

    <div id="punchline"> 
     <div class="question"></div> 
     <div id="zing" class="exit-right"></div> 
    </div> 
</div> 
<div id="buttons"> 
    <input id="tell-me" class="exit-bottom no-select" type="button" value="Tell Me!" /> 
    <!--<input id="another" class="exit-bottom" type="button" value="Another!" />--> 
    <table class="another exit-bottom no-select"> 
     <tr> 
      <td class="another" colspan="3">Another</td> 
      <td class="share"><div class="share-img"></div>Share</td> 
     </tr> 
    </table> 
</div> 

そしてInnerTextプロパティが全く示されていない... そしてここでは、私のコードがVS.です

var doc = new HtmlAgilityPack.HtmlDocument(); HtmlAgilityPack.HtmlNode.ElementsFlags ["br"] = HtmlAgilityPack.HtmlElementFlag.Empty; doc.OptionWriteEmptyNodes = true;

    try 
       { 
        var webRequest = HttpWebRequest.Create("http://dadjokegenerator.com/"); 
        Stream stream = webRequest.GetResponse().GetResponseStream(); 
        doc.Load(stream); 
        stream.Close(); 
       } 
       catch (System.UriFormatException uex) 
       { 

        throw; 
       } 
       catch (System.Net.WebException wex) 
       { 

        throw; 
       } 

       //get the div by id and then get the inner text 
       doc.GetElementbyId("content").InnerHtml; 
       await e.Channel.SendMessage("test " + divString); ` 
+0

また、「テスト」をクリアにして、誰もそれについて聞かないようにしたいと思います。今のところ私が使用しているのは、テキストがないメッセージを送信しようとすると、プログラムの出力先がプログラムをクラッシュさせるためです。 – LogandadLoga

+0

id = 'content'のdivを表示するようにhtmlの例を変更できますか?いくつかの親を含めて、うまくいけばタグ –

+0

からそれはid = 'content'である。 – LogandadLoga

答えて

1

このページでは、実際にあなたが表示された場合、あなたは、あなたがそれを見ることができます(探しているジョークが含まれていないので、あなたのコードが正しく、innerHTMLプロパティが空で、ページhttp://dadjokegenerator.com/のコンテンツをダウンロードするが、あなたのWebブラウザのページのソースコード - 例えばFirefoxの場合はCTRL + Uを押します。ジョークは後でjavascriptによってこのページに追加されます。このJavaScriptのソースコードをhttp://dadjokegenerator.com/js/main.jsにすると、個々のジョークがURLからダウンロードされることがわかりますhttp://dadjokegenerator.com/api/api.php?a=j&lt=r&vj=0

このURLからジョークをダウンロードするための最小サンプルです。単純化のためにすべてのエラーチェックを省略し、私はJSONの逆シリアル化のために無料のJson.NETライブラリを使用しました:

public class Joke 
{ 
    public int Id; 
    public string Setup; 
    public string Punchline; 

    public override string ToString() 
    { 
     return Setup + " " + Punchline; 
    } 
} 

public static Joke GetJoke() 
{ 
    var request = HttpWebRequest.Create("http://dadjokegenerator.com/api/api.php?a=j&lt=r&vj=0"); 
    using (var response = request.GetResponse()) 
    { 
     using (var stream = response.GetResponseStream()) 
     { 
      using (var reader = new StreamReader(stream)) 
      { 
       var jokeString = reader.ReadToEnd(); 

       Joke[] jokes = JsonConvert.DeserializeObject<Joke[]>(jokeString); 
       return jokes.FirstOrDefault(); 
      } 
     } 
    } 
} 

GetJoke().ToString(); 
関連する問題