1

そんなテーブルがあります。そして、td タグの間から FOO COMPANY というテキストだけを取得したいと考えています。どうすれば入手できますか?

<table class="left_company">
    <tr>
        <td style="BORDER-RIGHT: medium none; bordercolor="#FF0000" align="left" width="291" bgcolor="#FF0000">
            <table cellspacing="0" cellpadding="0" width="103%" border="0">
                <tr style="CURSOR: hand" onclick="window.open('http://www.foo.com')">
                    <td class="title_post" title="FOO" valign="center" align="left" colspan="2">
                        <font style="font-weight: 700" face="Tahoma" color="#FFFFFF" size="2">***FOO COMPANY***</font>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
<table>

次のコードを使用していますが、nS は null です。

doc = hw.Load("http://www.foo.aspx?page=" + j);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//table[@class='left_company']"))
{
nS = doc.DocumentNode.SelectNodes("//td[@class='title_post']");
}
4

4 に答える 4

1
var text = doc.DocumentNode.Descendants()
                .FirstOrDefault(n => n.Attributes["class"] != null && 
                                n.Attributes["class"].Value == "title_post")
                .Element("font").InnerText;

また

var text2 = doc.DocumentNode.SelectNodes("//td[@class='title_post']/font")
               .First().InnerText;
于 2012-07-10T06:11:16.163 に答える
1

呼び出しているページは、JavaScript を使用して目的のコンテンツを生成している可能性があります。HtmlAgilityPack は JavaScript を実行しないため、コンテンツを抽出できません。これを確認する 1 つの方法は、スクリプトをオフにしてページにアクセスし、目的の要素がまだ存在するかどうかを確認することです。

于 2012-07-10T06:03:28.730 に答える
0

company="FOO" のような属性をフォント要素に挿入します

次に、jqueryを使用してその要素を取得します

alert($('font[company="FOO"]').html())

このように

乾杯

于 2012-07-10T06:06:11.807 に答える
0

近い:nS = doc.DocumentNode.SelectNodes("//td[@class='title_post']//text()");

その後、nS ノードを開いてテキストを取得できます。複数のテキスト ノードがある場合は、それらを反復処理する必要があります。

于 2012-07-10T06:05:09.007 に答える