2017-06-05 92 views
-1

如何從這樣的XML元素的值的集合,使用LINQ (根/ DOC /文件/文件):如何編寫示例XML LINQ查詢

<root> 

    <doc> 
    <files> 
     <file>1</file> 
     <file>2</file> 
     <file>3</file>  
    </files> 
    </doc> 

    <doc> 
    <files> 
     <file>4</file> 
     <file>5</file> 
     <file>6</file>  
    </files> 
    </doc> 

</root> 

從該查詢我會喜歡有:

1 
2 
3 
4 
5 
6 

這是我寫到目前爲止的代碼的開始。

string xmlIn = "<root> "+ 
        " <doc>"+ 
        "  <files>"+ 
        "  <file>1</file>"+ 
        "  <file>2</file>"+ 
        "  <file>3</file> "+ 
        "  </files> "+ 
        " </doc>"+ 

        " <doc>"+ 
        "  <files>"+ 
        "  <file>4</file>"+ 
        "  <file>5</file>"+ 
        "  <file>6</file> "+ 
        "  </files> "+ 
        " </doc>"+ 

        " </root>"; 

    var xml = XDocument.Parse(xmlin); 
+1

你能告訴我們你到目前爲止的代碼嗎? – mjwills

+0

甚至沒有樣本,因爲我不知道如何在linq中編寫它。 – John

+0

在http://www.dotnetcurry.com/linq/564/linq-to-xml-tutorials-examples和https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide上有一個squiz /概念/ LINQ/LINQ到XML的概述 – mjwills

回答

1

C#/。NET具有XML解串器/分析器:

using System.Xml; 

,你可以用它來加載XML:

//using a previously created stream that holds an XML document 
    XDocument xdoc = XDocument.Load(xmlstream); 

然後你可以使用LINQ to s選擇你想要的:

// this example looks for a tag called 'object' and then collects all 
// the objects of type 'cluster' 
var clusters = from cluster in _XDoc.Descendants("object") 
         where cluster.Attribute("type").Value == "cluster" 
         select cluster;