親要素 (font) があり、text() または span 要素のすべての子要素 (直接の子孫) を選択したいと考えています。そのような xpath をどのように構築しますか?
質問する
4981 次
1 に答える
3
現在のノードがfont
要素の場合、次のようになります。
text()|span
それ以外の場合は、常に|
2 つの完全な XPath (テキスト用とスパン用) を組み合わせる必要があります。
font/text()|font/span
現在のノードがすぐ上にある場合font
- または
//a[text()='View Larger Map']/../../../../div[contains(@class, 'paragraph')][3]/font/span|//a[text()='View Larger Map']/../../../../div[contains(@class, 'paragraph')][3]/font/text()
いくつかの複雑な選択基準でルートから開始する場合。
最後のパスのような複雑なパスがある場合は、部分的なパスを変数に格納することをお勧めします (たとえば、XSLT 内)。
<xsl:variable name="font" select="//a[text()='View Larger Map']/../../../../div[contains(@class, 'paragraph')][3]/font"/>
. . .
<xsl:for-each select="$font/span|$font/text()">
. . .
</xsl:for-each>
別の可能性は、次のようなことです。
//a[text()='View Larger Map']/../../../../div[contains(@class, 'paragraph')][3]/font/node()[name()='span' or name()='']
name()
ノードに対して空の文字列を返すため、これはtext()
機能しますが、すべての XPath プロセッサでそのように機能するかどうかは 100% 確信が持てず、誤ってコメント ノードと一致する可能性があります。
于 2012-05-30T20:33:51.323 に答える