14

XPathを使用して、HTMLドキュメントから正確に1つの要素を取得しています。要素には特定のIDが必要です。または、IDが存在しない場合は、存在が保証されている要素(body要素など)を取得します。

IDで要素を取得するには、次を使用します。

css=#may-not-exist

フォールバック要素(たとえば、ボディ)を取得するには、次を使用します。

css=body

上記の2つの式を1つの式に組み合わせるにはどうすればよいですか(get #may-not-existelse get body)?

4

1 に答える 1

32

bodyデフォルトのまま使用可能です。これは、他の何よりも前に開始されるため、式から最初に取得されます ( head.

(//*[@id="xxx"] | //body)[last()]

説明:

パーツは、そのサブパーツの( ... | ... )結合を返します。これらは*[@id="xxx"]-- 属性 ID の値が xxx であるすべての要素 -- および //body、つまり body です。この結合から[last()]、最後の結合を選択します。返されたノードは元のドキュメントと同じように順序付けられるため、body が最初 (少なくとも body 内のすべての前) になります。id を持つ要素が存在する場合、それは body の後に来て返されます。そうでない場合は、ユニオンから返される唯一の (最初と最後の) ノードとして body が返されます。

于 2012-10-24T14:52:52.897 に答える