Serialize any object and save it to an xml file using the XMLSerializer.
[C#]
///<summary>Serialize any object and save it to an xml file using the XMLSerializer.</summary> /// ///<param name="xmlPathFile">A System.String that is the path and file name of the XML file to create. Example: "C:\temp\myfile.xml"</param> ///<param name="xmlObject">A System.Object. Any ArcObject (Example: IPoint, IPolygon, IFieldEdit, etc..) or intrinsic value (Example: string, boolean, int, etc..) can be used.</param> ///<param name="xmlNodeName">A System.String for the name of the XML node (element) that will contain the data. Example: "Point" or "Polygon" or "whatever".</param> /// ///<remarks></remarks> public void SerializeAnXMLFile(System.String xmlPathFile, System.Object xmlObject, System.String xmlNodeName) { System.String elementURI = "http://www.esri.com/schemas/ArcGIS/9.2"; // Create xml writer ESRI.ArcGIS.esriSystem.IXMLWriter xmlWriter = new ESRI.ArcGIS.esriSystem.XMLWriterClass(); // Create xml stream ESRI.ArcGIS.esriSystem.IXMLStream xmlStream = new ESRI.ArcGIS.esriSystem.XMLStreamClass(); // Explicit Cast for IStream and then write to stream xmlWriter.WriteTo((ESRI.ArcGIS.esriSystem.IStream)xmlStream); // Serialize ESRI.ArcGIS.esriSystem.IXMLSerializer xmlSerializer = new ESRI.ArcGIS.esriSystem.XMLSerializerClass(); xmlSerializer.WriteObject(xmlWriter, null, null, xmlNodeName, elementURI, xmlObject); // Save the xmlObject to an xml file. When using xmlstream the cpu keeps data in memory until it is written to file. xmlStream.SaveToFile(@xmlPathFile); }
[Visual Basic .NET]
'''<summary>Serialize any object and save it to an xml file using the XMLSerializer.</summary> ''' '''<param name="xmlPathFile">A System.String that is the path and file name of the XML file to create. Example: "C:\temp\myfile.xml"</param> '''<param name="xmlObject">A System.Object. Any ArcObject (Example: IPoint, IPolygon, IFieldEdit, etc..) or intrinsic value (Example: string, boolean, int, etc..) can be used.</param> '''<param name="xmlNodeName">A System.String for the name of the XML node (element) that will contain the data. Example: "Point" or "Polygon" or "whatever".</param> ''' '''<remarks></remarks> Public Sub SerializeAnXMLFile(ByVal xmlPathFile As System.String, ByVal xmlObject As System.Object, ByVal xmlNodeName As System.String) ' xml namespace Dim elementURI As System.String = "http://www.esri.com/schemas/ArcGIS/9.2" ' Create xml writer Dim xmlWriter As ESRI.ArcGIS.esriSystem.IXMLWriter = New ESRI.ArcGIS.esriSystem.XMLWriterClass ' Create xml stream Dim xmlStream As ESRI.ArcGIS.esriSystem.IXMLStream = New ESRI.ArcGIS.esriSystem.XMLStreamClass ' Write to stream xmlWriter.WriteTo(CType(XMLStream, ESRI.ArcGIS.esriSystem.IStream)) ' Serialize the field Dim xmlSerializer As ESRI.ArcGIS.esriSystem.IXMLSerializer = New ESRI.ArcGIS.esriSystem.XMLSerializerClass xmlSerializer.WriteObject(xmlWriter, Nothing, Nothing, xmlNodeName, elementURI, xmlObject) ' When using xmlstream the cpu keeps data in memory until it is written to file. XMLStream.SaveToFile(xmlPathFile) End Sub