I am trying to deserialize an XML file, but I only get the first entry.
Here is the data from my xml file.
<?xml version="1.0" encoding="utf-8"?>
<Scale xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>1:1</Name>
<Numerator>1</Numerator>
<Denominator>1</Denominator>
<Units>mm</Units>
<Name>1:2</Name>
<Numerator>1</Numerator>
<Denominator>2</Denominator>
<Units>mm</Units>
<Name>1:5</Name>
<Numerator>1</Numerator>
<Denominator>5</Denominator>
<Units>mm</Units>
<Name>1:10</Name>
<Numerator>1</Numerator>
<Denominator>10</Denominator>
<Units>mm</Units>
</Scale>
This is the code I have used.
The only result I get isCode:using System; using System.IO; using System.Xml.Serialization; public class Test { public static void Main() { StreamReader objStreamReader = new StreamReader(@"C:\Users\burgessb2\desktop\Scales.xml"); Scale s2 = new Scale(); XmlSerializer x = new XmlSerializer(typeof(Scale)); s2 = (Scale)x.Deserialize(objStreamReader); objStreamReader.Close(); //Display property values of the new product object. Console.WriteLine(string.Format("Name: {0}{1}\tNumerator: {2}\tDenominator: {3}",s2.Name, s2.Units,s2.Numerator,s2.Denominator)); Console.ReadLine(); } public static bool SerializeFile<T>(object xmlType, string filename) { bool result; try { XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); using (Stream stream = File.Open(filename, FileMode.Create)) { xmlSerializer.Deserialize(stream); result = true; } } catch { result = false; } return result; } } public class Scale { private string _Name; private double _Numerator; private double _Denominator; private string _Units; public string Name { get { return _Name; } set { _Name = value; } } public double Numerator { get { return _Numerator; } set { _Numerator = value; } } [XmlElementAttribute(ElementName = "Denominator")] public double Denominator { get { return _Denominator; } set { _Denominator = value; } } public string Units { get { return _Units; } set { _Units = value; } } }
Name: 1:1mm Numerator: 1 Denominator: 1
Can anyone give me a clue as to where I am doing wrong?


Reply With Quote