HTMLAgilityPack を使用して、特定のノードのリスト内のテキストを取得しています。基本的に、次の HTML を含む HTML ページを読み上げています。
<div class="video-overview yt-grid-fluid">
<h3 class="video-title-container">
<span class="yt-badge-std">
WATCHED
</span>
<a href="/watch?v=S5FCdx7Dn0o&list=FLArRQZAMoAgECBIOn08gNeA&index=1" title="Bob Marley - Buffalo soldier" class="yt-uix-tile-link yt-uix-sessionlink" data-sessionlink="ei=c9tWUb3eJaOzhgG6kYHYAg&feature=plpp_video">
<span class="title video-title" dir="ltr">Bob Marley - Buffalo soldier</span>
</a>
</h3>
<p class="video-details">
<span class="video-owner">
by <span class="yt-user-name " dir="ltr">Pgroenberg</span>
</span>
<span class="video-view-count">
44,342,136 views
</span>
</p>
</div>
の中にある「ボブ・マーリー - バッファローの兵士」というテキストを取得したい<span class="title video-title" dir">
。
正しいパターンが見つからないようです:
string expression = @"//span[@class='title video-title' and @dir='ltr']/text()";
HtmlNodeCollection hnc = htmlDoc.DocumentNode.SelectNodes(expression);
式と一致するノードがないため、hnc は null になります。表現がうまくいかないのはなぜですか?