2013-04-18 2 views
0

이상한 문제가 발생했습니다. 나는이 XML를 벗어난 XElement를 얻을 XPathExtentions을 사용하고XPath 표현식에서 점 대 슬래시

<T durationMs="400"> 
    <foo durationMs="407"> 
    <foo-child durationMs="307" /> 
    </foo> 
    <bar durationMs="208"> 
    <bar-child durationMs="108" /> 
    </bar> 
</T> 

:

var xe = XElement.Parse(s); 
var foo = xe.XPathSelectElement("/T/foo") 

그것은 아무 것도 반환하지 않습니다 나는이 XML이있다. 그러나 사용하는 경우 :

var foo = xe.XPathSelectElement("./foo") 

요소를 가져옵니다. 이 경우 점과 슬래시의 차이점은 무엇입니까?

답변

3

/root 노드에서 선택 루트에서 선택을 나타냅니다 선택이 귀하의 경우에는


을 수행하는 방법에 대한 간단한 아이디어를 제공합니다.

그래서 /T/foo로 확실히

. 일치하지 것이다 T->T->foo 일치하려고하는 것은

+0

나는 본다! XDocument가 루트를 사용하는 것이 겠지요? – Schultz9999

+0

@ Schultz9999 [this] (http://msdn.microsoft.com/en-us/library/ms256471.aspx)에서 살펴보십시오. – Anirudha

1

.은 현재 노드를 선택합니다.

/ 루트 노드에서 선택하십시오.

// 현재 노드의 문서에서 노드의 위치에 관계없이 선택 영역과 일치하는 노드를 선택합니다.

XPath Syntax 당신에게 ./foo 노드 즉 T

+0

@Anirudh 작동 할 루트 노드

/foo 될 경우에 현재 노드를 묘사 - 업데이트되었습니다! –

관련 문제