Quelqu'un peut-il m'aider à lire les valeurs dans xml avec son format?VB.net lire XML
Ci-dessous l'échantillon xml. Je dois obtenir les éléments suivants:
>id = 4ebc-9c89
>employeeidnumber = 12345
>name = Smith, John
>weekday = 31/10/2016
>reason = VL
>weekday = 1/11/2016
>reason = VL
>id = 35bc-9c89
>employeeidnumber = 54321
>name = Smith, Jane
>weekday = 1/11/2016
>reason = VL*
Si un employé a demandé deux ou plusieurs congés, le programme devrait obtenir tous ses congés.
<employeeleaverequest>
<leaverequest>
<id>4ebc-9c89</id>
<employeeidnumber>12345</employeeidnumber>
<name>Smith, John</name>
<company name="ABC Company">42b8</company>
<position name="08">-d00077504</position>
<dayleaverequest>
<weekday date="31/10/2016">2</weekday>
<segments>
<segment>
<id>ae2f2c</id>
<hours>8</hours>
<reason name="Vacation Leave">VL</reason>
<status>1</status>
</segment>
</segments>
</dayleaverequest>
<dayleaverequest>
<weekday date="1/11/2016">3</weekday>
<segments>
<segment>
<id>96898</id>
<hours>8</hours>
<reason name="Vacation Leave">VL</reason>
<status>1</status>
</segment>
</segments>
</dayleaverequest>
</leaverequest>
<leaverequest>
<id>35bc-9c89</id>
<employeeidnumber>54321</employeeidnumber>
<name>Smith, Jane</name>
<company name="ABC Company">42b8</company>
<position name="08">-d00077504</position>
<dayleaverequest>
<weekday date="1/11/2016">2</weekday>
<segments>
<segment>
<id>ae333c</id>
<hours>8</hours>
<reason name="Vacation Leave">VL</reason>
<status>1</status>
</segment>
</segments>
</dayleaverequest>
</leaverequest>
</employeeleaverequest>
Voici mon code pour l'instant.
For Each Node As XmlElement In nodelist
strId = Node("id").InnerText
strNumber = Node("employeeidnumber").InnerText
strName = Node("name").InnerText
Dim sLeaveDay As XmlNode = >Node.SelectSingleNode("dayleaverequest")
If strLeaveDay IsNot Nothing Then
strLeaveDay = >sLeaveDay("weekday").Attributes.ItemOf("date").InnerText
End If
Dim sSegments As XmlNode = >Node.SelectSingleNode>("dayleaverequest/segments/segment")
If sSegments IsNot Nothing Then
strReason = sSegments("reason").InnerText
End If
MessageBox.Show(strId & "|" & strNumber & "|" & strName & >"|" & strLeaveDay & "|" & strReason)
Next
Vous devez ajouter quel est le problème avec le code actuel, une erreur (quel message), un comportement inattendu (lequel). Cela dit, si le code est ** exactement ** comme indiqué ici, je suspecte que le caractère '>' dispersé à travers le code joue un rôle dans le problème – Sehnsucht
Le code ci-dessus ne prend que le premier congé pour chaque personne. Je veux boucler la boucle de jour afin qu'elle produise plusieurs congés si la personne a plusieurs congés. Je n'ai aucune idée d'où ils viennent. Mon code ici n'a pas ces caractères. – Marlofs