2016-02-29 1 views
0

Я пытаюсь прочитать XML и получить базовый узел, чтобы добавить его в список, но получает всю информацию этих узлов и добавляет эту информацию в качестве элемента.Как добавить только базовый узел в listview как элемент, получает всю информацию

Это мой XML:

<?xml version="1.0" encoding="utf-8"?> 
<Servers> 
    <MYSERVER> 
    <Host>xxx.xxx.xxx.xxx</Host> 
    <User>MyUser</User> 
    <Password>MyPassword</Password> 
    <Port>25</Port> 
    </MYSERVER> 
</Servers> 

Я просто хочу, чтобы добавить "MYSERVER" в ListView, но добавляет всю информацию (Host, User, Password и порт).

Это то, что я делаю:

private void frmTransmissionManagement_Load(object sender, EventArgs e) 
{ 
    XMLDoc.Load(XMLInterfaces); 
    foreach (XmlNode node in XMLDoc.SelectSingleNode("Servers")) 
    {     
     lvConnections.Items.Add(node.InnerText, 0); 
    } 
} 

Любая идея?

Thanks

+2

Какую версию .NET? Можете ли вы использовать XDocument (LINQ to XML)? – CodingGorilla

+0

Это язык программирования .NET 4.6 C# –

ответ

2

Мне нравится XDocument, тоже. Этот код работал для меня. Я считаю, что это то, что вы хотите.

 foreach (XmlNode node in XMLDoc.ChildNodes) 
     { 
      if (node.Name == "Servers") 
      { 


       foreach (XmlNode serverNode in node) 
       { 
        string s = serverNode.Name; 
        MessageBox.Show(s); 
       } 

      } 




     } 
+0

Это решение работает для меня! Спасибо!! –

0

Использование XDcoument из System.Xml.Linq вы можете использовать что-то вроде следующего:

doc.Element("Servers").Elements().Select(x => x.Name); 

Это возвращает только строки (на самом деле в данном случае это в IEnumerable с одним значением): «MYSERVER».

Быстрый пример программы я написал показывает:

static void Main(string[] args) 
{ 
    var doc = System.Xml.Linq.XDocument.Parse("<?xml version=\"1.0\" encoding=\"utf-8\"?> <Servers> <MYSERVER> <Host>xxx.xxx.xxx.xxx</Host> <User>MyUser</User> <Password>MyPassword</Password> <Port>25</Port> </MYSERVER> </Servers>"); 
    var servers = doc.Element("Servers").Elements().Select(x => x.Name); 
    foreach(var s in servers) 
    { 
     Console.WriteLine(s); 
    } 
    Console.ReadLine(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^