Macro - Faire des bidouilles dans un fichier XML

Voir le sujet précédent Voir le sujet suivant Aller en bas

Macro - Faire des bidouilles dans un fichier XML

Message par Arafat le Sam 21 Fév 2015 - 7:42

Bonjour à tous,

Désolé je me permet de vous soumettre encore une questions sur les macros.
Je souhaiterai créer une macro CATScript en lien avec des fichiers XML.

Actuellement nous avons une application qui extrait les caractéristiques de tolérancement d'un Drawing dans un fichier au format xml.
Voilà à peu près comment se compose chaque bloc du fichier (1 bloc par cote).

Code:
[...]
<CADAnnotation>
  <blabla>xxxx</blabla>
  <blabla2>xxxx</blabla2>
  ...
  <Key>false</Key>
  ...
 <ValueString>10 #A#</ValueString>
  ...
  <blablaN>xxxx</blablaN>
</CADAnnotation>
[...]

C'est pas mal, mais je souhaiterai en plus avoir une macro qui :
- Parcours le fichier xml souhaité (chemin indiqué via l'explorateur windows?)
- Check s'il y a le champ #A# dans la ligne "ValueString" contenue dans chaque bloc
- Si c'est le cas, elle positionne la ligne "Key" à true.

Sauriez-vous comment pourrais-je me lancer?
Merci à vous Smile Smile

Arafat
timide
timide

Messages : 13
Date d'inscription : 20/02/2015
Localisation : Bordeaux

Revenir en haut Aller en bas

Re: Macro - Faire des bidouilles dans un fichier XML

Message par xorman le Mar 24 Fév 2015 - 2:53

ci joint un bout de code ou dans un fichier XML, je récupère la position en Y des plans, que je met ensuite dans un tableau
Code:

Private Sub RecupCouple(ByVal filename As String)
'********************************************************************************
'Récupération des couple dans un fichier XML
'********************************************************************************
 
Dim xmlDoc As MSXML2.DOMDocument
Dim PlaneCross As IXMLDOMElement
Dim Plane As String
Dim Cross As String
Dim Couple As Integer
Dim C As Double
Dim FinTab As Integer

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = "false"
xmlDoc.Load (FichierXML)
'Debug.Print FichierXML

For Each PlaneCross In xmlDoc.selectNodes("/ReferencePlanesSystem/GeometricData/PlaneSystem/Definition")
    Plane = PlaneCross.selectSingleNode("Plane").XML
    If Mid(Plane, 63, 3) = "Fr-" Then
    FinTab = PlaneCross.childNodes.Length - 1
    'Debug.Print "FinTab" & FinTab
    End If
Next
ReDim TabCouple(FinTab)

'On récupère tous les infos des CROSS à l'intérieur du noeud definition
For Each PlaneCross In xmlDoc.selectNodes("/ReferencePlanesSystem/GeometricData/PlaneSystem/Definition")
    Plane = PlaneCross.selectSingleNode("Plane").XML
    If Mid(Plane, 63, 3) = "Fr-" Then
        For i = 1 To PlaneCross.childNodes.Length - 1
        Plane = PlaneCross.childNodes.Item(i).XML
        'On isole le Cross Offset
        Cross = Mid(Plane, InStr(Plane, "Offset") + 8, 6)
        Cross = Val(Cross)
        'Conversion en nombre
        C = Val(Cross)
        TabCouple(i - 1) = C
        'Debug.Print "TabCouple" & (i - 1) & "= " & TabCouple(i - 1)
        Next i
    End If
Next

'On récupère le premier et dernier couple
PremierCouple = TabCouple(0)
DernierCouple = TabCouple(UBound(TabCouple) - 1)

End Sub
avatar
xorman
actif
actif

Messages : 98
Date d'inscription : 06/09/2008
Age : 41
Localisation : Cherbourg

http://www.myimpression3d.com

Revenir en haut Aller en bas

Re: Macro - Faire des bidouilles dans un fichier XML

Message par Arafat le Lun 2 Mar 2015 - 22:24

Nikel, merci à toi.
Je vais tester ce code et voir ce que je peux en tirer.

Bonne journée Smile

Arafat
timide
timide

Messages : 13
Date d'inscription : 20/02/2015
Localisation : Bordeaux

Revenir en haut Aller en bas

Re: Macro - Faire des bidouilles dans un fichier XML

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum