Forums Neueste Beiträge
 

Mapping einer XML-Datei auf ein vorhandenes Objekt

11/01/2008 - 16:57 von Dirk Wölfel | Report spam
Hallo zusammen,

mal wieder: Fragen zum File-IO.

Ist es möglich mit dem .Net-Framework eine XML-Datei auf ein
vorhandenes Objekt zu mappen.

Will sagen: ich habe ein Klasse mit verschiedenen Eigenschaften
erschaffen und möchte diese jetzt mit Inhalten füllen. Diese Inhalte
stecken in einer XML-Datei, die aber nicht von mir entwickelt/
geschrieben wurde. Auch möchte ich nicht alles, was in der XML-Datei
steckt verwenden. Aber bestimmte Eigenschaften eben schon.

Wie ist das Übertragen/Mapping elegant zu lösen?

Vielen Dank,

Dirk
 

Lesen sie die antworten

#1 Martin Honnen
12/01/2008 - 14:21 | Warnen spam
Dirk Wölfel wrote:

Ist es möglich mit dem .Net-Framework eine XML-Datei auf ein
vorhandenes Objekt zu mappen.

Will sagen: ich habe ein Klasse mit verschiedenen Eigenschaften
erschaffen und möchte diese jetzt mit Inhalten füllen. Diese Inhalte
stecken in einer XML-Datei, die aber nicht von mir entwickelt/
geschrieben wurde. Auch möchte ich nicht alles, was in der XML-Datei
steckt verwenden. Aber bestimmte Eigenschaften eben schon.

Wie ist das Übertragen/Mapping elegant zu lösen?



Per XML-Serialisierung bzw. Deserialisierung: man kann öffentliche
Eigenschaften mit Attributen versehen, die dann die Abbildung festlegen.
Z.B. mit folgender XML-Datei

<Foo>
<Baz>1</Baz>
<Bar>foobar</Bar>
</Foo>

legt diese Klassendefinition

<XmlRoot(ElementName:="Foo")> _
Public Class Class1
Private _field1 As String
<XmlElement(ElementName:="Bar")> _
Public Property Prop1() As String
Get
Return _field1
End Get
Set(ByVal value As String)
_field1 = value
End Set
End Property
End Class

fest, dass die Abbildung Foo <--> Class1 und Prop1 <--> Bar bei der
Serialisierung/Deserialisierung vorgenommen wird.

Angewendet wird das ganze dann wie folgt:

Dim serializer As XmlSerializer = New
XmlSerializer(GetType(Class1))
Dim c1 As Class1 =
CType(serializer.Deserialize(XmlReader.Create("XMLFile1.xml")), Class1)
Console.WriteLine(c1.Prop1)



Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen