2012-04-25 2 views
1

나는 노드 싶어 :xpath에서 text()와 r n (줄 바꿈)을 어떻게 비교합니까?

// 스크립트 [시작 -와 (. 텍스트() '\ 연구 \ 이름 nvar')]

을하지만 \ 연구 \ n을 이스케이프를 인식하지 못하는 XPath는 것 문자. 그들과 어울리는 아이디어?

참고 : 나는 HTML 민첩성 팩

+0

사용 문자 엔티티를. \ r =' '및 \ n = ' ' –

답변

1

사용 사용하고 있습니다 :

//script[starts-with(., '
var name')] 

는 대부분의 경우 XML은 XML 파서에 의해 표준화 하고 왼쪽 단 하나의 NL 문자가를 - 따라서 위의 표현에서 원하는 script 요소를 선택하지 않은 경우 다음을 시도해보십시오.

//script[starts-with(., '
var name')] 

또는이 두 경우 모두에서 작동합니다 :

//script 
    [(starts-with(., '
') or starts-with(., '
')) 
    and 
    starts-with(substring-after(., '
'), 'var name') 
    ] 
+2

Dimitre의 대답은 물론 정확합니다. 그러나 나는 당신의 디자인에 의문을 가질 것입니다. 다른 공백 문자를 허용하지 않으면 서 "var name"과 정말로 일치시키고 싶습니까? –

+0

@MichaelKay : OP는 XPath 1.0의 완전한 구현이 아닌 "HTML 민첩성 팩"을 사용하고 있습니다. - 더 나은 디자인이'starts-with (normalize-space (var name) - HAP이'normalize-space()'를 지원하는지는 몰랐습니다. –

+0

@MichaelKay 위의 작업 중 아무 것도 작동하지 않았습니다. HAP이 인식하지 못하는 것 같습니다 – Devela

관련 문제