2016-10-09 50 views
-1

這是我的代碼我從xml文件中的所有數據到列表框中唯一缺少的是屬性我有一些困難,試圖讓屬性出現。不知道究竟該做什麼或者我缺少什麼。我從來沒有做過xml之前。我如何得到一個XML屬性顯示在列表框c#

string startPath = Application.StartupPath + "\\ContactManager.xml"; 
     XmlTextReader textReader = new XmlTextReader(startPath); 
     string Names = ""; 
     string sex = ""; 

     while (textReader.Read()) 
     { 
      switch (textReader.NodeType) 
      { 
       case XmlNodeType.Attribute: 
        sex = textReader.GetAttribute("Sex"); 
        break; 
       case XmlNodeType.Element: 
        Names = textReader.Name; 
        break; 
       case XmlNodeType.Text: 
        Console.WriteLine(); 
        lbDisplay.Items.Add(sex + Names + ": " + textReader.Value); 
        break; 
      } 

     } 

這些是xml文件中的一些元素Sex是屬性。

<Contact Sex="M"> 
<FirstName>Mickey</FirstName> 
<LastName>Mouse</LastName> 
<PhoneNumber>401-555-1212</PhoneNumber> 
<FaxNumber>401-666-6666</FaxNumber> 
<EmailAddress>[email protected]</EmailAddress> 
</Contact> 
+0

看起來像一個簡單的名稱不匹配。您的屬性名稱是「性別」,而不是「聯繫人」。 –

+0

@JacobProffitt我試過,仍然沒有顯示在列表框中 – Angel

+0

有沒有標籤?否則,該XML無效。它看起來可能聯繫人是其他值的父節點 – Dijkgraaf

回答

2

您需要更改您的代碼:

string startPath = Application.StartupPath + "\\ContactManager.xml"; 
    XmlTextReader textReader = new XmlTextReader(startPath); 
    string Names = ""; 
    string sex = ""; 

    while (textReader.Read()) 
    { 
     switch (textReader.NodeType) 
     { 
      case XmlNodeType.Element: 
       Names = textReader.Name; 
       if(textReader.Name == "Contact") sex = textReader.GetAttribute("Sex"); 
       break; 
      case XmlNodeType.Text: 
       Console.WriteLine(); 
       lbDisplay.Items.Add(sex + Names + ": " + textReader.Value); 
       break; 
     } 

    } 
+0

@天使是你在找什麼? – mbadeveloper

+0

我試過,它已經不顯示在列表框中 – Angel

+0

@天使你能向我解釋你想在列表框中顯示什麼嗎?僅限性別還是名字,姓氏和性別? – mbadeveloper

相關問題