문제

같은 것 .//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에는 REGEX 지원이 없습니다.

.NET의 경우 Saxon.net의 XPath 엔진을 사용하여 XPath 2.0을 지원할 수 있습니다.

따라서 Saxon.net에서 XPath 2.0 엔진을 사용하는 경우 예제가 다음과 같습니다. .//div[matches(@id,'foo\d+')].

.NET에서는 확장 객체를 통해 사용자 정의 클래스에 액세스 할 수 있습니다 (따라서 필요에 맞게 적절하게 코딩 할 수있는 경우 Regex).

지도 시간 여기.

나는 또한 이것을하고 싶었으므로 내 자신의 기본을 만들었습니다. xpath 모듈.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top