نوشته شده توسط
niknam_mh
سلام دوستان
من نیاز دارم که تو سورس وی بی دات نتم از داخل نرم افزار اطلاعاتی رو بفرستم به فایل xml یا sxml که مثل گزینه زیر باشه و در هر دفعه یکی اضاف کنه بفرستم:
<RizSnd>
<Rdif>1</Rdif>
<CodMoin>مقدار</CodMoin>
<CodTfzili>مقدار</CodTfzili>
<Shrh>مقدار</Shrh>
<MblgBdhkar>0</MblgBdhkar>
<MblgBstankar>مقدار</MblgBstankar>
<Sth5>0</Sth5>
<Sth6>0</Sth6>
<Del>true</Del>
<bdhkar>0</bdhkar>
<bstankar>مقدار</bstankar>
<Mgdar>0</Mgdar>
<TdadArz>0</TdadArz>
</RizSnd>
دوستان راهنمای کنید خیلی ضروریه ممنون میشم
وقتی شما یک کلاسی داشته باشید (که فرضا مشخصه یا فیلد هایی به اسم Rdif و CodMoin داره)، XmlSerializer خیلی ساده شیء اون کلاس رو تبدیل می کنه به XML یا برعکس XML رو تبدیل می کنه به شیء اون کلاس.
فرض کنیم همچین کلاسی دارید :
Class RizSnd
Public Rdif As Integer
Public CodMoin As Integer
Public CodTfzili As Integer
End Class
یا همچین کلاسی :
Class RizSnd
Public Property Rdif As Integer
Public Property CodMoin As Integer
Public Property CodTfzili As Integer
End Class
اونوقت اگر می خواهید XML بدون اضافه کردن Declaration استاندارد XML نوشته بشه، مثل اون مثال خودتون :
Public Shared Function ObjectToXml (obj As Object) As String
Dim serializer = New Xml.Serialization.XmlSerializer (obj.GetType ())
Dim settings = New Xml.XmlWriterSettings ()
Dim namespaces = New Xml.Serialization.XmlSerializerNamespaces (New Xml.XmlQualifiedName () {Xml.XmlQualifiedName.Empty})
settings.OmitXmlDeclaration = True
settings.Indent = True
Using w As New IO.StringWriter ()
Using ww = Xml.XmlWriter.Create (w, settings)
serializer.Serialize (ww, obj, namespaces)
Return w.ToString ()
End Using
End Using
End Function
یا همراه با Declaration استاندارد نوشته بشه :
Public Shared Function ObjectToXml (obj As Object) As String
Dim serializer = New Xml.Serialization.XmlSerializer (obj.GetType ())
Using w As New IO.StringWriter ()
serializer.Serialize (w, obj)
Return w.ToString ()
End Using
End Function
مثلا :
Dim r As New RizSnd
Dim xml = ObjectToXml (r)
MessageBox.Show (xml)