1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Dim l_Value As String
Dim l_XmlDoc As New XmlDocument
Dim l_XmlNode As XmlNode
Dim l_NsMgr = New XmlNamespaceManager(l_XmlDoc.NameTable)
' chargement des données retour dans un document Xml
l_XmlDoc.LoadXml(l_Value)
' gestion des namespaces
l_nsmgr = New XmlNamespaceManager(l_XmlDoc.NameTable)
l_nsmgr.AddNamespace("soapenv", "http://schemas.xmlsoap.org/soap/envelope/")
l_nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance")
l_nsmgr.AddNamespace("n", "http://blabla.com")
' sélection du noeud
l_XmlNode = l_XmlDoc.SelectSingleNode("soapenv:Envelope/soapenv:Body/GetData", l_nsmgr)
l_Value = l_XmlNode.InnerXml
' création d'un flux mémoire et d'un lecteur à partir de la chaîne XML
Dim bytes() As Byte
ReDim bytes(value.Length)
System.Text.Encoding.UTF8.GetBytes(l_Value, 0, l_Value.Length, bytes, 0)
Dim l_stream As New MemoryStream(bytes)
' mapping des types
Dim l_SoapReflector As New SoapReflectionImporter()
Dim l_TypeMapping As XmlTypeMapping = l_SoapReflector.ImportTypeMapping(GetType(BlaBlaType))
' désérialisation
Dim l_XmlSerializer As New XmlSerializer(l_TypeMapping)
Dim l_obj = l_XmlSerializer.Deserialize(l_XmlReader)
l_TypedObject = CType(l_obj, BlaBlaType) |
Partager