2012-02-29 8 views
2

こんにちは、私はHTML Agilty Packを使ってWebページを解析してイメージのsrcを取得しようとしています。これがページの構造です。私は悪いXPath式を持っているかもしれない/イメージをHTMLで解析するAgilty Pack

任意のアイデア:

<div class="post_body"> 
    <div style="text-align: center;"> 
     <a href="http://www.engadget.com/2012/02/29/qualcomm-windows-8/"> 
      <img src="http://www.blogcdn.com/www.engadget.com/media/2012/02/201202297192-1330536971.jpg" style="border-width: 0px; border-style: solid; margin: 4px;"> 
     </a> 
    </div> 
<div> 

は、今私は、文字列は常にnullを返されているが、SRC

HtmlWeb hw = new HtmlWeb(); 
      HtmlDocument doc = hw.Load("http://www.engadget.com/2012/02/29/qualcomm-windows-8"); 

      HtmlNode baseNode = doc.DocumentNode.SelectSingleNode("//div[@class='post_content permalink ']"); 
      string Description = baseNode.SelectSingleNode("//div[@class='post_body']").InnerText.Replace("\n", "").Replace("\r", "").Trim(); 

      string href = baseNode.SelectSingleNode("//div[@class='post_body']//img[@src]").InnerText; 

を取得しようとするために、このコードを使用していますか?

答えて

2

多分私は悪いxpath表現を持っていますか?

はい、いくつかの問題があります:提供文書で、値が'post_content permalink '

SelectSingleNode("//div[@class='post_body']//img[@src]").InnerText; 

あるclass属性を持つdivが、そこイマイチので

//div[@class='post_content permalink '] 

は、これは、何も選択しませんimg要素は、たとえそれが見つかったとしても、子要素を持たないため、innerTextはありません。

ソリューション

HtmlNode img = doc.DocumentNode.SelectSingleNode(//div[@class='post_body']//img[@src]) 

String srcUrl = img.Attributes["src"].Value; 

あなたはこのような何かをしたいです