私はこのHTMLを持っています:
<tr class="even expanded first>
<td class="score-time status">
<a href="/matches/2012/08/02/europe/uefa-cup/">
16 : 00
</a>
</td>
</tr>
(16 : 00) 文字列を余分な空白なしで抽出したい。これは可能ですか?
私はこのHTMLを持っています:
<tr class="even expanded first>
<td class="score-time status">
<a href="/matches/2012/08/02/europe/uefa-cup/">
16 : 00
</a>
</td>
</tr>
(16 : 00) 文字列を余分な空白なしで抽出したい。これは可能ですか?
I. 次の 1 つの XPath 式を使用します。
translate(normalize-space(/tr/td/a), ' ', '')
説明:
normalize-space()
引数から新しい文字列を生成します。この文字列では、先頭または末尾の空白 (スペース、タブ、NL、または CR 文字) が削除され、中間の空白が単一の空白文字に置き換えられます。
translate()
によって生成された結果を受け取り、normalize-space()
残りの中間スペースのそれぞれが空の文字列に置き換えられた新しい文字列を生成します。
Ⅱ.または:
translate(/tr/td/a, ' 	 
', '')
text() ノードが空かどうかを確認できます。
/path/text()[not(.='')]
following-sibling:: のような軸でこれらがコンテナーでない場合、または child:: で役立つ場合があります。
注: 一部のコメントは、xpath は文字列操作を実行できないと言っています...たとえそれが実際にはそのように設計されていなくても、contains()、starts-with()、replace() などの基本的なことを実行できます。
空白ノードをチェックしたい場合は、通常はノードリストの結果セットがあり、ほとんどの xpath 関数 (match や replace など) は 1 つのノードしか操作しないため、はるかに困難です。
したがって、xpath を使用してコンテナーまたはテキスト ノードのリストを取得し、それを別の言語で処理することができます。(java、php、python、perl など)。