2017-02-03 16 views
1

XPath式で使用される次の条件を短縮する方法はありますか?XPath式を最適化するにはどうすればよいですか?

(../parent::td or ../parent::ol or ../parent::ul) 

XPathのバージョンは1.0です。

+0

どこでどのように使用するか教えていただけますか? –

+1

あなたは2つの異なる質問をしています。どうすればそれを最適化でき、どうすれば短くすることができますか?式の長さは実行速度にほとんど影響しません。質問を明確にしてください。 –

+0

@GrzegorzGórkiewicz残念ながら、私はできません。一般的な質問のように考えてください。 – Cuder

答えて

1

最短はおそらく性能差があるかどうかを

../..[self::td|self::ol|self::ul]

である "|" は、 「または」はプロセッサに依存しますが、私はほとんどの場合、それが目立たないと考えています。パフォーマンスのためには、重要なことは、条件を正しい順序で入れることです(真を返す可能性が最も高いものが最初に来るはずです)。 (a)XPathエンジンがこの最適化を自動的に行う可能性があり、(b)差異が非常に小さいため、測定に問題が生じる可能性があるため、祖父母へのナビゲーションを考慮する必要があります。

1

'|'オペレーター。 (../parent::td|../parent::ol|../parent::ul)

0

やや短い:

../..[self::td or self::ol or self::ul] 

使用例:

//p[../..[self::td or self::ol or self::ul]] 
関連する問題