以下のURLを参照してclassの値を撮ろうとしています。
http://www.atmarkit.co.jp/fdotnet/dotnettips/908classname/classname.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/687nondispbrowser/nondispbrowser.html
例として取得しようとしているものは以下のurl
http://ejje.weblio.jp/content/solid
class=phoneticEjjeDesc>sάlɪd</span><span class=phoneticEjjeDc>(米国英語)</span>, <span
上記の米国英語のsάlɪdです。
ソースは以下のように書き換えました。
static void Main() {
省略
foreach (HtmlElement e in doc.GetElementsByTagName("className")) {
string c = e.GetAttribute("className");
string text = e.InnerText;
if (!string.IsNullOrEmpty(c)
&& !string.IsNullOrEmpty(text)) {
text = text.Replace("\r\n", ""); // 改行文字の削除
Console.WriteLine(c);
Console.WriteLine(text);
}
}
}
取れませんでした。デバックするとclassNameでは1つも対象がありませんでした。classにしても同じでした。registoryでwebbrowerのバージョンを11に指定しても同じでした。
実行環境はwindows 10です。
ここ、違います。SPAN タグを対象にします。
// foreach (HtmlElement e in doc.GetElementsByTagName("className")) { foreach (HtmlElement e in doc.GetElementsByTagName("SPAN")) {
対象を選ぶところも違います。
Null 判定だけじゃなくて、e.GetAttribute("className") で取得した値が "phoneticEjjeDesc" かどうかの判定も必要です。