2016-11-28 25 views
0

我想在我們的XML-FILE中找到屬性的值。使用linq.XML在XML文件中查找一個屬性

例如,我們在這裏的XML文檔:

<PROJECT_DOCUMENTS> 
    <DOCUMENT isFile="YES" isLink="YES" type="Risk Action List (combined)" path="path" showFile="" showFolder="YES" FilePath="" FolderPath="" /> 
    <DOCUMENT isFile="YES" isLink="NO" type="ASPICE-Action List" path="path" showFile="" showFolder="YES" FilePath="" FolderPath="path" /> 
</PROJECT_DOCUMENTS> 

我想路徑的值=「....喇嘛......」是類型是ASPICE-動作列表。

這裏我用我的代碼生成:

XElement elementToChange = (from c in getFileFromXML.Element("PROJECT_DOCUMENTS") 
             .Elements("DOCUMENT") 
             where("type"== "ASPICE-Action List") 
             select c).Single().Element("path"); 

但我不明白的信息來源。我認爲類型== Aspice-Action列表不起作用。

誰能幫我解決我的問題;)

感謝

回答

0

如果你想獲得path屬性值可以使用未來與Attribute()方法操縱的元素的屬性代碼:

var elementsToChange = from c in getFileFromXML.Element("PROJECT_DOCUMENTS").Elements("DOCUMENT") 
       where c.Attribute("type")?.Value == "ASPICE-Action List") 
       select c.Attribute("path").Value; 

要檢索整個元素,請使用下一個代碼或添加SingleOrDefault()FirstOrDefault()以完成您的任務:

var elementsToChange = from c in getFileFromXML.Element("PROJECT_DOCUMENTS").Elements("DOCUMENT") 
       where c.Attribute("type")?.Value == "ASPICE-Action List") 
       select c; 
0

您可以嘗試使用下面的代碼獲得相同的:

from c in getFileFromXML.Elements("DOCUMENT") 
where "ASPICE-Action List" == c.Attribute("type").Value 
select c; 
相關問題