質問

何かのようなもの .//div[@id='foo\d+] div タグをキャプチャするには id='foo123'.

それが重要な場合は、.NET を使用しています。

役に立ちましたか?

解決

他の回答が指摘しているように、 XPath 1.0 は正規表現をサポートしていません

それでも、次のオプションがあります

.//div
   [starts-with(@id, 'foo') 
  and 
   'foo' = translate(@id, '0123456789', '')
  and
   string-length(@id) > 3   
   ]

他のヒント

XPath 2.0には、正規表現をサポートする関数がいくつかあります: matches() replace() tokenize()

XPath 1.0では、正規表現はサポートされていません。

.NETの場合、Saxon.NetのXPathエンジンを使用してXPath 2.0をサポートできます。

したがって、Saxon.NETでXPath 2.0エンジンを使用する場合、例は .// div [matches(@ id、 'foo \ d +')] になります。

>

.NETでは、拡張オブジェクトを介してカスタムクラス(およびニーズに応じて適切にコーディングできる場合は正規表現)にアクセスできます。

チュートリアルこちら

私もこれがやりたかったので、独自の基本を作成しました xpathモ​​ジュール.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top