XmlElementEventArgs::LinePosition Property
.NET Framework (current version)
Gets the place in the line where the unknown element occurs if the XML reader is an XmlTextReader.
Assembly: System.Xml (in System.Xml.dll)
Property Value
Type: System::Int32The number in the line where the unknown element occurs if the XML reader is an XmlTextReader; otherwise, -1.
The following example deserializes a class named Group from a file named UnknownElements.xml. Whenever an element is found in the file that has no corresponding member in the class, the UnknownElement event occurs. To try the example, paste the following XML code into a file named UnknownElements.xml.
<?xml version="1.0" encoding="utf-8"?> <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <GroupName>MyGroup</GroupName> <GroupSize>Large</GroupSize> <GroupNumber>444</GroupNumber> <GroupBase>West</GroupBase> </Group>
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml::Serialization; using namespace System::Xml; using namespace System::Xml::Schema; public ref class Group { public: String^ GroupName; }; public ref class Test { private: void Serializer_UnknownElement( Object^ sender, XmlElementEventArgs^ e ) { Console::WriteLine( "Unknown Element" ); Console::Write( "\t {0}", e->Element->Name ); Console::WriteLine( " {0}", e->Element->InnerXml ); Console::WriteLine( "\t LineNumber: {0}", e->LineNumber ); Console::WriteLine( "\t LinePosition: {0}", e->LinePosition ); Group^ x = dynamic_cast<Group^>(e->ObjectBeingDeserialized); Console::WriteLine( x->GroupName ); Console::WriteLine( sender ); } public: void DeserializeObject( String^ filename ) { XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); // Add a delegate to handle unknown element events. ser->UnknownElement += gcnew XmlElementEventHandler( this, &Test::Serializer_UnknownElement ); // A FileStream is needed to read the XML document. FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); Group^ g = dynamic_cast<Group^>(ser->Deserialize( fs )); fs->Close(); } }; int main() { Test^ t = gcnew Test; // Deserialize the file containing unknown elements. t->DeserializeObject( "UnknownElements.xml" ); }
.NET Framework
Available since 1.1
Available since 1.1
Show: