3

HtmlAgilityPack を使用して内部テキストを抽出しようとしています。対象の HTML は次のとおりです。

<select name="Archives" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Archives\&#39;,\&#39;\&#39;)&#39;, 0)" id="Archives" style="width:200px;">
    <option selected="selected" value="Dashboard_Jul-2012">Dashboard_Jul-2012</option>
    <option value="Dashboard_Jun-2012">Dashboard_Jun-2012</option>
</select>

私は使っている:

string output = htmlwriter.InnerWriter.ToString()
var doc = new HtmlDocument();
doc.LoadHtml(output);
string inner = doc.DocumentNode.SelectSingleNode("//option[@selected='selected']").InnerText;

しかし、私が得ているのは空の文字列だけです。

アドバイスをいただければ幸いです。

よろしく。

4

1 に答える 1

5

デフォルトでは、HTMLAgilityPack はオプション タグを空のままにします (この作成者の理由については、HtmlAgilityPack -- Does <form> close their own for some reason?で確認できます)。これを修正するには、ノードを選択する前に次の行を追加します。

HtmlNode.ElementsFlags.Remove("option");
于 2012-08-21T16:45:58.013 に答える