Récupérer les noms des éléments d'une structure pour construire un fichier xml
Bonjour,
Je cherche à récupérer le nom de chaque élément contenu dans une structure faisant parti elle meme d'une structure.
Voici à quoi ressemble ma structure:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Public Structure PARTITION_STRUCT
Public ZSystem As ZSYS
Public ZCount As ZCOUNT
End Structure
'Structure ZSYS
Public Structure ZSYS
Public SNB As UInt64
Public PID As Byte
Public KID As String
End Structure
'Structure ZCOUNT
Public Structure ZCOUNT
Public RELOADING1 As String
Public COUNTER1 As String
End Structure |
L'idée étant d'obtenir ce format en xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <SRT512>
<PARTITIONS>
<ZSystem>
<SNB>SNB value<SNB />
<PID>PID value<PID />
<KID>KID value<KID />
<ZSystem />
<ZCount>
<RELOADING1>RELOADING1 value<RELOADING1 />
<COUNTER1>COUNTER1 value<COUNTER1 />
<ZCount />
</PARTITIONS>
</SRT512> |
Pour le moment j'arrive à récupérer les noeuds principaux "ZSystem" et "ZCount", mais je n'arrive pas à descendre dans l'arborescence:
Voilà mon code qui fonctionne jusque là:
Code:
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 28 29 30 31
| Public function SRT512ToXml(byval pPartition As PARTITION_STRUCT) As XmlDocument
'création d'une nouvelle instance du membre xmldocument
Dim XmlDoc As XmlDocument = New XmlDocument()
'création du document
XmlDoc.LoadXml("<SRT512><SRT512 />")
'Création de la balise <PARTITIONS>
Dim XmlElemPart As XmlElement = XmlDoc.CreateElement("PARTITIONS")
'creation des balises incluses dans la balise <PARTITIONS> à partir de la structure PARTITION_STRUCT
For Each ZoneField In pPartition.GetType.GetFields
Dim XmlElemZone As XmlElement
XmlElemZone = XmlDoc.CreateElement(ZoneField.Name)
'creer un noeud pour chaque sous éléments de l'élément Zone
For Each ..................................... =========================> la je ne sais pas comment faire
Dim XmlElemSub As XmlElement
XmlElemSub = XmlDoc.CreateElement(.......)
Next
'j'ajoute l'element Zone à l'element Partition
XmlElemPart.AppendChild(XmlElemZone)
Next
'j'joute l'élément Partitions au document
XmlDoc.DocumentElement.AppendChild(XmlElemPart)
return XmlDoc |