#c# #xml
#c# #xml
Вопрос:
Это мой код, я перенес все данные из XML-файла в список, отсутствует только атрибут, у меня возникают некоторые трудности при попытке отобразить атрибут. не уверен, что именно делать или чего мне не хватает. я никогда раньше не делал xml.
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>mmouse@disney.com</EmailAddress>
</Contact>
Комментарии:
1. Похоже на простое несоответствие имен. Ваше имя атрибута — «Пол», а не «Контакт».
2. @JacobProffitt я пробовал, но это все еще не отображается в списке
3. Есть ли тег </Contact> ? В противном случае этот XML недействителен. Похоже, что, возможно, Contact является родительским узлом для других значений
4. @Dijkgraaf да, их есть
Ответ №1:
Вам нужно изменить свой код на:
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;
}
}
Комментарии:
1. @Angel это то, что ты ищешь?
2. @Angel можете ли вы объяснить мне, что вы хотите показать в списке? только пол или имя, фамилию и пол?
3. Я уже получил имя, фамилию и т.д. В списке единственное, что мне нужно.
Sex
у меня несколько контактов, поэтому для каждого контакта я хочу, чтобы перед каждым контактом отображался пол.4. @Angel Я редактирую код, теперь вы получаете секс с другой информацией
5. большое спасибо, что решил мою проблему, я буду возиться с ним, чтобы он не отображался перед каждым тегом :))