2013-10-10 44 views
1

我有一个XML文件,如下所示重复节点的信息:充分利用C#中的XML文件

<Root> 
    <Folder1> 
    <file>AAA</file> 
    <file>BBB</file> 
    <file>CCC</file> 
    </Folder1> 
    <Folder2> 
    <file>AAA</file> 
    <file>BBB</file> 
    <file>CCC</file> 
    </Folder2> 
</Root> 

我需要所有的家长串名单, 我尝试使用

using (XmlTextReader reader = new XmlTextReader(pathFiles))    
{      
    reader.ReadToFollowing("file"); 
    string files = reader.ReadElementContentAsString(); 
} 

因此,“文件”变量只包含“AAA”,

reader.ReadElementContentAsString()不接受列表。

有没有什么方法来提取输出{“AAA”,”BBB”,”CCC”, AAA”,”BBB”,”CCC”}

回答

4
XDocument doc=XDocument.Load(xmlPath); 
List<string> values=doc.Descendants("file") 
         .Select(x=>x.Value) 
         .ToList(); 
+2

我的回答工作,但你的是简单的+1 –

2

试试这个

XDocument xdoc = XDocument.Parse(xml); 
var filesArray = xdoc.Elements() 
    .First() 
    .Descendants() 
    .Where(x => x.Name == "file") 
    .Select(x => x.Value) 
    .ToArray();