2016-11-28 68 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; 
相关问题