2016-09-01 4 views
0

imgタグからsrcプロパティを取得しようとしています。 問題はイメージのsrcを取得するのではなく、空の文字列です。代わりに//img/@srcを削除すると、aというタグ(画像)の内容が表示されます。どうしたの? 私は他の同様の質問を見ましたが、ソリューションは私のために働いていませんでした。画像からsrcタグを取得するには?

<div class="clearfix"> 
    <div class="container left">  
    <div class="logo"> 
     <a href="/teams/japan/japan/1348/"> 
     <img src="http://cache.images.core.optasports.com/soccer/teams/150x150/1348.png" alt="Giappone"> 
     </a> 
    </div> 
</div> 

これは私のコードです:

var shieldHomeContainer = nodeCollection.SelectSingleNode("//div[@class='container left']//div[@class='logo']//a//img/@src"); 
+0

ノードコレクションがつかんhtmlページのノードのリストが含まれているように、現在のノードが、あなたが私のコードは、文字列内のHTMLを入れ、とにかく試みることができる私は@Thomas上に掲載のHTMLが含まれている何かをしてみてください私のコードをペーストして、srcイメージプロパティのグラブを働かせていないことを確認してください。 – AgainMe

+0

他のタグを他の行から手に入れることはできますか? –

+0

@SimonPrice私は他のタグのコンテンツを取得することができますが、私はimgタグでのみこの問題があります。私が画像源のリンクを抽出することはできないと思われる。 – AgainMe

答えて

3

この

var shieldHomeContainer = nodeCollection.SelectSingleNode("//img").Attributes["src"].Value; 
+0

これは魅力的な作品です:) – AgainMe

1

あなたが直接属性を選択することはできません。要素を選択してGetAttributeValue()を呼び出す必要があります。

var h=new HtmlAgilityPack.HtmlDocument(); 
h.LoadHtml(@" 
<div class=""clearfix""> 
    <div class=""container left"">  
    <div class=""logo""> 
     <a href = ""/teams/japan/japan/1348/"" > 
     <img src=""something"" alt=""Giappone""> 
     </a> 
    </div> 
</div>"); 
var img = h.DocumentNode.SelectSingleNode(
"//div[@class='container left']//div[@class='logo']//a//img"); 
Debug.WriteLine(img.GetAttributeValue("src","nothing")); 

あなたは要素がその属性を持っていることを確認するには、img[@src]を使用しています。

関連する問題