program story

XPath 표현식에서 Regex를 사용할 수 있습니까?

inputbox 2020. 12. 4. 08:10
반응형

XPath 표현식에서 Regex를 사용할 수 있습니까?


.NET으로 .//div[@id='foo\d+]div 태그를 캡처하는 것과 같은 것 입니다 id='foo123'.

중요한 경우 .NET을 사용하고 있습니다.


다른 답변에서 언급했듯이 XPath 1.0 은 정규식을 지원하지 않습니다 .

그럼에도 불구하고 다음과 같은 옵션이 있습니다 .

.//div
   [starts-with (@id, 'foo') 
   'foo'= 번역 (@id, '0123456789', '')
   문자열 길이 (@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에서는 Extension Objects를 통해 사용자 정의 클래스에 액세스 할 수 있습니다 (따라서 필요에 맞게 적절하게 코딩 할 수있는 경우 regex).

여기 튜토리얼 .


나는 또한 이것을하기를 원했기 때문에 내 자신의 기본 xpath 모듈을 만들었다 .

참고 URL : https://stackoverflow.com/questions/405060/can-i-use-a-regex-in-an-xpath-expression

반응형