HtmlAgilityPackでhtmタグの値を取得する

c# css html html-agility-pack

質問

私は以下のスタイルでHTMLブロックコードをたくさん持っています。

  1. imgのsrc属性の値
  2. 日付の値
  3. 2番目のimgのソース属性の値
  4. 詳細

私はこれらの数字をコードで指定しました。

最後に、これらの値をすべてXMLファイルに入れたいと思います。 HtmlAgilityPackでこれらの値をどうやって得ることができるか、私に助けてください。

前もって感謝します。

<div class="promotion"> 
 <div class="logo">
       <img src='http://www.example.com/D.jpg' **(1)**>         
 </div>
 <div class="details">
    <p class="date"> 2015/12/12 **(2)** </p>
    <p> 
       <img src="http://www.example.com/DDD.jpg" **(3)** alt="" />
       <h3> Some Details **(4)** </h3>
    </p> 
 </div>
</div>

受け入れられた回答

HTMLを質問に入れているような場合は、XPathを使用して次の順序で結果を取得できます。

このような前のコードを使用すると、たとえばHTMLでテストすることができます:

var html = @"<div class='promotion'> 
                     <div class='logo'>
                           <img src='http://www.example.com/D.jpg' **(1)**>         
                     </div>
                     <div class='details'>
                        <p class='date'> 2015/12/12 **(2)** </p>
                        <p> 
                           <img src='http://www.example.com/DDD.jpg' **(3)** alt='' />
                           <h3> Some Details **(4)** </h3>
                        </p> 
                     </div>
                    </div>";

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
  1. たとえば、最初のイメージの場合は次のようになります。

    var html = @"<div class='promotion'> 
                         <div class='logo'>
                               <img src='http://www.example.com/D.jpg' **(1)**>         
                         </div>
                         <div class='details'>
                            <p class='date'> 2015/12/12 **(2)** </p>
                            <p> 
                               <img src='http://www.example.com/DDD.jpg' **(3)** alt='' />
                               <h3> Some Details **(4)** </h3>
                            </p> 
                         </div>
                        </div>";
    
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    
  2. このような2番目のもの:

    var html = @"<div class='promotion'> 
                         <div class='logo'>
                               <img src='http://www.example.com/D.jpg' **(1)**>         
                         </div>
                         <div class='details'>
                            <p class='date'> 2015/12/12 **(2)** </p>
                            <p> 
                               <img src='http://www.example.com/DDD.jpg' **(3)** alt='' />
                               <h3> Some Details **(4)** </h3>
                            </p> 
                         </div>
                        </div>";
    
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    
  3. 第3の場合:

    var html = @"<div class='promotion'> 
                         <div class='logo'>
                               <img src='http://www.example.com/D.jpg' **(1)**>         
                         </div>
                         <div class='details'>
                            <p class='date'> 2015/12/12 **(2)** </p>
                            <p> 
                               <img src='http://www.example.com/DDD.jpg' **(3)** alt='' />
                               <h3> Some Details **(4)** </h3>
                            </p> 
                         </div>
                        </div>";
    
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    
  4. そして4人のために:

    var html = @"<div class='promotion'> 
                         <div class='logo'>
                               <img src='http://www.example.com/D.jpg' **(1)**>         
                         </div>
                         <div class='details'>
                            <p class='date'> 2015/12/12 **(2)** </p>
                            <p> 
                               <img src='http://www.example.com/DDD.jpg' **(3)** alt='' />
                               <h3> Some Details **(4)** </h3>
                            </p> 
                         </div>
                        </div>";
    
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    

これがあなたを助けることを願っています




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ