私はCSharp、XPath、およびHTMLAgility Packを使用しています。私は以下のようなXPath文字列を使用します:XPath OR、代替
"//table[3]/td[1]/span[2]/text() | //table[6]/td[1]/span[2]/text()"
"//table[8]/td[1]/span[2]/text() | //table[10]/td[1]/span[2]/text()"
違いはテーブル番号だけです。他のXPath関数を使用してXPathまたは|
を置き換えることはできますか?
実際に行ったこと:最初のXPath文字列(ここではテーブル番号3 & 6)を使用して1つの値を抽出します。 2番目のXPath文字列(テーブル番号は8 &です)では、別の値を抽出します。
パフォーマンスに関するその他の質問 - XPath文字列//table[8]/td[1]/span[2]/text()
はXPath文字列よりも速く、OR
//table[8]/td[1]/span[2]/text() | //table[10]/td[1]/span[2]/text()
?私はこれに尋ねます。なぜなら、多くの多くの値に対して多くのXPath文字列があり、実際には何か他のものを試す必要があるという違いがあるからです。私はあなたの経験を分かち合うためにこの質問をあなたに依頼しています。
全体または?の代わりに[3 | 6]を使用するだけではどうですか? –
@Yet:その場合でも有効なXPathではありません。任意の式だけでなく、2つのノードセット間でORを使用できます。 –
Htmlで許可されている場合は、他のXPATH式を使用できます。いくつかのHTMLコードを共有できますか? –