Ich erhalte eine FormatException-Fehler "Eingabe Zeichenfolge war nicht in einem korrekten Format." Fehler ...C# befüllen Klassenarray von XML Linq führt zu FormatException
Employee-Klasse sind alle Strings außer dem Status (int), Typ (int) und angezeigt (Bool)
public partial class Version2 : System.Web.UI.Page {
private Employee[] Employees;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
XDocument xdoc = XDocument.Load(Server.MapPath("~/")+ "V2Employees.xml");
IEnumerable<XElement> emps = xdoc.Root.Descendants();
Employees = emps.Select(x => new Employee()
{
Employee_ID = x.Attribute("id").Value,
First_Name = x.Element("First_Name").Value,
Last_Name = x.Element("Last_Name").Value,
Classification_Group = x.Element("Classification_Group").Value,
Classification_Level = x.Element("Classification_Level").Value,
Postion_Number = x.Element("Postion_Number").Value,
English_Title = x.Element("English_Title").Value,
French_Title = x.Element("French_Title").Value,
Location = x.Element("Location").Value,
Language = x.Element("Language").Value,
Department_ID = x.Element("Department_ID").Value,
Status = int.Parse(x.Element("Status").ToString()),
Type = int.Parse(x.Element("Type").ToString()),
Displayed = false}).ToArray();
}
Beispiel XML in gehen:
<?xml version="1.0" encoding="utf-8" ?>
<employees>
<employee id="1">
<First_Name>Jane</First_Name>
<Last_Name>Doe</Last_Name>
<Classification_Group>AA</Classification_Group>
<Classification_Level>02</Classification_Level>
<Postion_Number>12345</Postion_Number>
<English_Title>Bob</English_Title>
<French_Title></French_Title>
<Location>Null Island</Location>
<Language>English</Language>
<Department_ID>000001</Department_ID>
<Status>1</Status>
<Type>4</Type>
</employee>
</employees>
könnte versuchen, alle Linien zu kommentieren heraus dann zu einem Zeitpunkt in einem Kommentar, das zu finden, die den Fehler verursacht haben – RoguePlanetoid
Sie haben 'x.Element („Status“). ToString()' sollte nicht 'x.Element (" Status ") sein. Value.ToString()', ähnlich wie in der Zeile darunter. – Valeklosse
Oder nur 'x.Element (" Status "). Wert 'vorausgesetzt, dass der Typ von' XElement.Value' 'string' ist, oder einfach eine Umwandlung verwenden:' (string) x.Element ("Status") 'to Holen Sie sich den String-Wert, oder noch besser, verwenden Sie einfach die Umwandlung von 'XElement' nach' int': '(int)' x.Element ("Status") '. –