2014-09-19 122 views
0

我在嘗試讀取我想爲我的母親創建的XML文件。所以基本上這是我想要做的:閱讀XML文件並在組合框中顯示節點

一個組合框,它將顯示XML中的所有名稱。

XML我寫

<Locatons.xml> 
 
    <Name>ee</Name> 
 
    <X>ere</X> 
 
    <Y>erer</Y> 
 
    <Z>re</Z> 
 
    <Name>ee</Name> 
 
    <X>eore</X> 
 
    <Y>erer</Y> 
 
    <Z>re</Z> 
 
    <Name>878</Name> 
 
    <X>8</X> 
 
    <Y>4</Y> 
 
    <Z>0</Z> 
 
</Locatons.xml>

C#代碼我寫信給添加到XML文件

 xDoc.Load(path); 
     XmlNode name = xDoc.CreateElement("Name"); 
     XmlNode x = xDoc.CreateElement("X"); 
     XmlNode y = xDoc.CreateElement("Y"); 
     XmlNode z = xDoc.CreateElement("Z"); 

     name.InnerText = textBox1.Text; 
     x.InnerText = textBox2.Text; 
     y.InnerText = textBox3.Text; 
     z.InnerText = textBox4.Text; 
     xDoc.DocumentElement.AppendChild(name); 
     xDoc.DocumentElement.AppendChild(x); 
     xDoc.DocumentElement.AppendChild(y); 
     xDoc.DocumentElement.AppendChild(z); 
     xDoc.Save(path); 
+1

你試過了什麼?或者也許用google搜索? – JleruOHeP 2014-09-19 04:15:06

+0

我嘗試了所有,但我最喜歡的是一個瘋狂的巫師 – 2014-09-19 04:56:56

回答

0

可能是這可能會幫助你..!使用這個名字空間的 :使用System.Xml.Linq的;

List<String> nameList = new List<String>(); 
      var NAME= XElement.Parse(xml); 

      if (NAME.Attribute("Name") != null) 
     { 
      nameList.Add(NAME.Attribute("Name").Value); 
     } 

將該下拉數據源指定爲nameList。

0

嘗試這樣:

var str = @" 
<Locatons.xml> 
    <Name>ee</Name> 
    <X>ere</X> 
    <Y>erer</Y> 
    <Z>re</Z> 
    <Name>ee</Name> 
    <X>eore</X> 
    <Y>erer</Y> 
    <Z>re</Z> 
    <Name>878</Name> 
    <X>8</X> 
    <Y>4</Y> 
    <Z>0</Z> 
</Locatons.xml>"; 
XDocument xdoc = XDocument.Parse(str); 
var output = new List<string>(); 
foreach (var element in xdoc.Descendants("Name")) 
{ 
    output.Add(element.Value.ToString()); 
} 

這將他們都加到一個List並從那裏你可以填充組合框。

+0

謝謝。但添加所有組合,我只想添加 2014-09-19 04:34:57

+0

Thaks,對不起,如果你不明白,我來自阿根廷我13歲,我不知道如何說enlish verry wel。 – 2014-09-19 04:52:10

0

如何從文件中獲取名稱:

var document = XDocument.Load("Locations.xml"); 
var names = document.Root.XPathSelectElements("/*/Name").Select(e => e.Value).ToArray(); 

如何TEMS添加到組合框(假設你使用WindowsForms),命名namebox中例如

NameBox.Items.AddRange(names); 

不要忘記

using System.Xml.Linq; 
using System.Xml.XPath; 
+0

泰克斯你解決了我的問題 – 2014-09-19 04:41:46