romagny13
Messages postés687Date d'inscriptionlundi 10 janvier 2005StatutMembreDernière intervention27 août 2014
-
28 oct. 2006 à 10:38
java_ma
Messages postés2Date d'inscriptionlundi 19 février 2007StatutMembreDernière intervention20 février 2007
-
19 févr. 2007 à 11:47
Bonjour,
voila j'ai 2 petits soucis
1 - j'ai des difficultés pour récupérér la valeur avec un XmlReader entre balises
ex : <gras>valeur</gras>
j'utilise oXmlReader.ReadElementString
mais dés l'instant que je passe dessus je ne sais pas se qu'il se passe on dirait que le reader est avancé, ainsi si je le place avant de faire ma boucle pour lister les attributs de la balise, juste avant de passer sur l'instruction j'ai par ex 3 attributs dans la propriete (XmlReader.AttributesCount) et dés que je suis passé dessus je n'en n'ai plus aucun
j'ai également essayé
If oXmlReader.HasValue =
True
ThenoElement.Valeur = oXmlReader.ReadElementString
End
If
mais dans ce cas je ne récupére aucune valeur même quand il y en a une entre les balises !!
Qu'utilisez vous pour recuperer la valeur entre une balise ouvrante et fermante ?
2 -
comment faire pour si on trouve le caracetere [] (retour a la ligne) (en lisant un fichier XML ou autre d'ailleurs )
faire un test pour eviter que le code soit executer si le caractere est trouvé
Function MultiSplit(ByVal sStr As String, bKeepSepar As Boolean, ParamArray aArray()) As String()
' Len des arguments aArray doivent être de 1, sStr ne doit pas être vide
' sStr -> chaîne à parser
' bKeepSepar -> garder ou non les caractères de référence
' aArray -> tableau des références (len= 1)
Dim sCol As New Collection
Dim sChar As String, sLeft As String
Dim bFound As Boolean
Dim aRes() As String
Dim i As Integer, j As Integer
i = 0
While LenB(sStr) > 0
i = i + 1
sChar = Mid$(sStr, i, 1)
bFound = False
For j = LBound(aArray) To UBound(aArray)
If sChar = CStr(aArray(j)) Then bFound = True: Exit For
Next j
If bFound Then
sLeft = Left$(sStr, i - 1)
If LenB(sLeft) > 0 Then sCol.Add sLeft
If bKeepSepar Then sCol.Add sChar
sStr = Right$(sStr, Len(sStr) - i)
i = 0
ElseIf sChar = vbNullString Then
sCol.Add sStr
sStr = vbNullString
End If
Wend
ReDim aRes(sCol.Count - 1)
For i = 1 To sCol.Count
aRes(i - 1) = sCol.Item(i)
Next i
MultiSplit = aRes
Set sCol = Nothing
Erase aRes
End Function
' EXEMPLE D'UTILISATION
Private Sub Form_Load()
Dim a$(), i%
a = MultiSplit( _
" valeur ", _
True, "<", ">", "/")
For i = 0 To UBound(a)
Debug.Print a(i)
Next i
Unload Me
End Sub