2013-04-18 40 views
0

我遇到了一個不尋常的問題。我有這樣的XML:XPath表達式中的點與斜槓

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

我使用XPathExtentions得到一個的XElement出這個XML的:

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

它沒有返回。但是,如果我使用:

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

它得到一個元素。那麼在這種情況下點和斜線有什麼區別?

回答

3

/root節點選擇的選擇。

因此,與/T/foo它試圖匹配T->T->foo這肯定不會匹配

.描繪了在這種情況下這將是根節點

/foo會工作

+0

我明白了! XDocument可以使用一個根,對嗎? – Schultz9999

+0

@ Schultz9999看看[this](http://msdn.microsoft.com/en-us/library/ms256471.aspx) – Anirudha

1

.選擇當前節點。

/從根節點中選擇。

//從當前節點中選擇與選擇相匹配的文檔中的節點,無論它們位於何處。

XPath Syntax給你的選擇是如何做


在你的情況的簡單說明./foo表示從根節點即T

+0

@Anirudh當前節點 - 更新! –

相關問題