2014-05-12 40 views
0

有這樣我如何獲得xml文件的最後一個子元素的所有名稱到字符串數組

<Node Name="[email protected]"> 
    <Node Name="segment_body37sub0"> 
     <Node Name="face_82C1EB14_4"/> 
    </Node> 
    <Node Name="segment_body37sub1"> 
     <Node Name="face_82C1ED90_5"/> 
    </Node> 
    <Node Name="segment_body37sub2"> 
     <Node Name="face_82C1EF38_6"/> 
    </Node> 
</Node> 

我想從上面的XML以下內容的XML。

face_82C1EB14_4 
face_82C1ED90_5 
face_82C1EF38_6 

基本上都在一個列表

我使用C#的工作框架4.0的最新元素。

+0

你的XML結構不可見... – Tcanarchy

+0

我已經編輯了你的文章,以便顯示XML,但是請在發佈時多加註意預覽 - 應該很明顯,該文章在其原始格式中沒有意義。另外,使用空格而不是製表符。 –

回答

1

這聽起來像你只是想用無子元素找到所有元素的名稱,然後從每個這些元素在Name屬性值的項目:

var names = doc.Descendants() // Or Descendants("Node") 
       .Where(x => !x.Elements().Any()) 
       .Select(x => x.Attribute("Name").Value); 
+0

感謝Jon的魅力.... – Razack

0
I made this before reading the updates and seeing you got an answer. Leaving it here just in case. 

    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      XmlDocument doc = new XmlDocument(); 
      doc.Load("C:/xmlExample.xml"); 

      XmlNode firstChild = doc.DocumentElement.FirstChild; 
      List<string> returningStrList = new List<string>(); 
      GetStringList(doc.DocumentElement.ParentNode, returningStrList); 

      Console.WriteLine(); 
     } 

     private static void GetStringList(XmlNode node, List<string> strList) 
     { 
      if (node.HasChildNodes) 
       foreach (XmlNode childNode in node.ChildNodes) 
        GetStringList(childNode, strList); 

      if (!string.IsNullOrEmpty(node.Value)) 
       strList.AddRange(node.Value.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)); 
     } 
    } 


XML structure: 
<?xml version='1.0'?> 
<example xmlns="urn:example-schema"> 
    <myNode> 
     <data a="1000" b="20"> 
      100 20000 
     </data> 
     <data a="12512" b="25"> 
      200 1000 
     </data> 

     <data> 
      <subData k="aaaa"> 
       subDataText 20 
      </subData> 
      400 kakaaka 
     </data> 
    </myNode> 
</example> 
相關問題