c#4.0とhtmlagilitypackを使用すると、特定のテーブルの値をどのように読み取ることができますか。私は10のテーブルがあり、6番目の値を読みたい、またはテーブルIDがあると言うことができます。HtmlAgilityPack - 特定のテーブルを読み取る方法 - c#4.0
または、私は特定のtdの後に来るtd値を読みたいとします。
または、特定のdivまたは要素またはテキストの後にテーブルが来る。これらは可能ですか?
c#4.0とhtmlagilitypackを使用すると、特定のテーブルの値をどのように読み取ることができますか。私は10のテーブルがあり、6番目の値を読みたい、またはテーブルIDがあると言うことができます。HtmlAgilityPack - 特定のテーブルを読み取る方法 - c#4.0
または、私は特定のtdの後に来るtd値を読みたいとします。
または、特定のdivまたは要素またはテキストの後にテーブルが来る。これらは可能ですか?
あなたが質問したことはすべて、比較的簡単に行うことができます。そのドキュメントが不足している可能性はありません。XMLとネットワークのXmlDocument
の実装と使用方法と機能の両方に似ている必要があります。
特定のテーブルの値を読み取るにはどうすればよいですか? 10個のテーブルがあり、6番目の値を読みたい、またはテーブルIDがあるとします。
第六表を検索:
// XPath
var table6 = doc.DocumentNode.SelectSingleNode("//table[6]");
// LINQ
var table6 = doc.DocumentNode.Descendants("table").Skip(5).FirstOrDefault();
IDによってテーブル/要素を見つける:
var myTable = doc.GetElementById("myTable");
// XPath
var myTable = doc.DocumentNode.SelectSingleNode("//table[@id='myTable']");
var myTable = doc.DocumentNode.SelectSingleNode("//*[@id='myTable']");
// LINQ
var myTable = doc.DocumentNode
.Descendants("table")
.Where(table => table.Attributes.Contains("id"))
.SingleOrDefault(table => table.Attributes["id"].Value == "myTable");
var myTable = doc.DocumentNode
.Descendants()
.Where(e => e.Attributes.Contains("id"))
.SingleOrDefault(e => e.Attributes["id"].Value == "myTable");
var myTable = doc.DocumentNode
.Descendants("table")
.SingleOrDefault(table => table.GetAttributeValue("id", null) == "myTable");
var myTable = doc.DocumentNode
.Descendants()
.SingleOrDefault(e => e.GetAttributeValue("id", null) == "myTable");
だが、私は特定のtdの後に来て、TD値を読みたいとしましょう。特定のdiv要素またはテキストまたは後に来
// XPath
var certainTd = table6.SelectSingleNode("//td[2]");
var tdAfterCertainTd = certainTd.SelectSingleNode("following-sibling::td[1]");
// LINQ (not so easy)
var certainTd = table6.Descendants("td").Skip(1).FirstOrDefault();
var tdAfterCertainTd = certainTd.NextSibling;
while (tdAfterCertainTd != null)
{
if (tdAfterCertainTd.Name == "td")
break;
tdAfterCertainTd = tdAfterCertainTd.NextSibling;
}
表。
// XPath
var certainDiv = doc.DocumentNode.SelectSingleNode("//div[1]");
var tableAfterCertainDiv = certainDiv.SelectSingleNode("following-sibling::table[1]");
// LINQ (not so easy)
var certainDiv = doc.DocumentNode.Descendants("div").FirstOrDefault();
var tableAfterCertainDiv = certainDiv.NextSibling;
while (tableAfterCertainDiv != null)
{
if (tableAfterCertainDiv.Name == "table")
break;
tableAfterCertainDiv = tableAfterCertainDiv.NextSibling;
}
あなたはいくつかのパターンに気づくはずです。
おかげです。私はxpathを学ぶことができる場所はありますか?任意の良いチュートリアルのeブックまたはビデオ。ありがとうございました。 – MonsterMMORPG
私はチュートリアルのサイトを知らない。演算子、関数、構文をリストし、いくつかのデータを処理するプログラムを書くことをお勧めします。そして、たくさんしてください。 –
あなたはどういうことを言っていますか?マークアップを表示します。フェッチする必要があることを説明します。 –
何を試しましたか?まともなスターターはここにあります:http://www.4guysfromrolla.com/articles/011211-1.aspx私はそれを読んで、あなたが言及したことを試してみて、それを得ることができないなら、もっと具体的な状況に戻ってください。 –
リンクに感謝します。たとえば、ページに多数の表が存在する可能性があります。私は特定のキーワードまたはdiv要素の後にテーブルを取得したいと言うことができます。どうやってやるの ?特定のマークアップ後に要素を読み込みます。 – MonsterMMORPG