2010-04-23 11 views
4

Sitecore CMS 시스템에서 수행중인 XPath 쿼리에 문제가 있습니다.XPath 및 특수 문자

이 쿼리가 잘 작동 :

/루트/컨텐츠/메타 데이터/팁/*

하지만이 때이 :

/루트/컨텐츠/메타 데이터/팁/* [@ SomeAttribute = 'somekey']

대시 문자가있는 "22 번 위치에서 예상되는 문자열 끝"이라는 오류 메시지가 나타납니다. XML에서 대시가 특별한 문자가 아니라는 인상을 받았습니다 ... 내가 여기서 뭔가 잘못하고있는 것입니까? 이것을 어떤 식 으로든 인코딩해야합니까? 아니면 XPath 파서의 버그입니까? 제안 된 해결 방법은 무엇입니까?

답변

12

변경이 : 여기에

/root/content/Meta-Data/Tips/*[@SomeAttribute='somekey'] 

:

/root/content/#Meta-Data#/Tips/*[@SomeAttribute='somekey'] 
+0

그건 작동합니다. 흥미롭게도 [@someattribute] 필터를 제외하면 실패합니다. 이것에 대한 자료가 있습니까? 나는 그것이 W3C Xpath 문서에 언급 된 것을 보지 못했다. 아래 XPath 테스터 awshepard 링크도 실패합니다. – Bryan

+1

http://sitecoredev.blogspot.com/2006/04/sitecore-xpath.html –

+0

저는 실제 XPath 구현이 아닙니다. 링크를 가져 주셔서 감사합니다. – Bryan

0

태그 이름의 문자에 대한 XML spec에 따르면, 하이픈은 유효한 문자이어야한다. 나는 this site으로 XPath 테스트를 약간 해봤고 결과를 다른 파서와 비교하는 데 도움이된다는 것을 알았습니다.

+0

감사합니다. 원본 쿼리는 대시 노드 이름과 함께 여기서 정상적으로 작동합니다. – Bryan

+0

이 답변에 연결된 원본 웹 사이트가 더 이상 작동하지 않아 작동하는 것으로 업데이트됩니다. – cgp