How can I get the position in the xml file of the xml tag after deserialization into a .NET object using XmlSerializer?
Here is an example XML
<ArrayOfAddressDetails>
<AddressDetails>
<Number>4</Number>
<Street>ABC</Street>
<CityName>Bern</CityName>
</AddressDetails>
<AddressDetails>
<Number>3</Number>
<Street>ABCD</Street>
<CityName>Prague</CityName>
</AddressDetails>
</ArrayOfAddressDetails>
Mapping XMLto Objects C #
[XmlRoot("Root")]
public class AddressDetails
{
[XmlElement("Number")]
public int HouseNo;
[XmlElement("Street")]
public string StreetName;
[XmlElement("CityName")]
public string City;
}
Desired Result
XmlSerializer serializer = new XmlSerializer(typeof(List<AddressDetails>));
var list = serializer.Deserialize(@"C:\Xml.txt") as List<AddressDetails>;
var position = XmlSerializerHelper.GetPosition(o => list[1].City, @"C:\Xml.txt");
Console.WriteLine("starts line={0}, column={1}", position.Start.Line, position.Start.Column);
Console.WriteLine("ends line={0}, column={1}", position.End.Line, position.Start.Column);
Console.WriteLine("xml info type={0}, name={1}, value={2}", position.Type, position.Name, position.Value);
source
share