イメージからsrcタグを取得するには?

c# html-agility-pack xml xpath

質問

imgタグからsrcプロパティを取得しようとしています。問題は、画像のsrcは取得せず、空の文字列を取得することです。代わりに//img/@srcを削除するとaタグ(画像)の内容が表示されます。どうしたの?私は他の同様の質問を見ましたが、解決策は私のために働いていませんでした。

<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");

受け入れられた回答

このようなものを試す

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

人気のある回答

属性を直接選択することはできません。要素を選択して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]使用します。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow