2013-12-13 47 views
2

我有一個XDocument對象,我試圖根據子元素的值獲取直接父元素。基於子元素的值獲取父元素

獲取子元素的值沒有問題,但我正在努力尋找正確的方法來獲取父元素。由於沒有使用過XML,我懷疑這個解決方案很簡單,而且我正在推翻它。

基本上,基於下面的XML,如果<Active>true</Active>那麼我想直接父元素(即<AlertNotification>),並沒有其他元素。

預先感謝您。

我認爲你應該在第一行更換utf-16utf-8的XML

<?xml version="1.0" encoding="utf-16"?> 
<Policies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLschema"> 
    <PolicyID>1</PolicyID> 
    <EmailNotification> 
     <Active>false</Active> 
    </EmailNotification> 
    <AlertNotification> 
     <Active>true</Active> 
    </AlertNotification> 
    <AlarmEnabled> 
     <Active>false</Active> 
    </AlarmEnabled> 
</Policies> 
+0

但是'AlertNotification'不包含任何數據 –

回答

3

的一個例子。然後,你可以試試這個:

XDocument doc = XDocument.Load(your file); 

var elements = doc.Descendants("Active") 
        .Where(i => i.Value == "true") 
        .Select(i => i.Parent); 
+0

提取這種方法'真正'但是我能只是父元素從那裏提取。謝謝! – TestK