IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Ajouter une node XML avec VBS


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juin 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Juin 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ajouter une node XML avec VBS
    Bonjour,

    Je tente d'ajouter une node dans un fichier XML via un VBS (qui sera exécuté à l'ouverture de la session des utilisateurs). Je suis capable de lire dans le fichier mais je n'arrive pas à faire l'ajout. Est-ce que quelqu'un aurait une idée ?

    Structure du XML

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <!--Phone Account Settings-->
    <Accounts>
    	<Profiles>
    		<Profile>
    			<IsActive>True</IsActive>
    			<AuthByPassword>True</AuthByPassword>
    			<AuthUser>iWz6iobPfr</AuthUser>
    			<Codecs>PCMU/8000/1,True;PCMA/8000/1,True;G722/16000/1,True;G729/8000/1,True;opus/48000/2,True;GSM/8000/1,False;speex/8000/1,False;iLBC/8000/1,False</Codecs>
    			<MaxRegistrationTime>120</MaxRegistrationTime>
    			<SIPTransport>0</SIPTransport>
    			<StunAttempts>2</StunAttempts>
    			<AuthPassword></AuthPassword>
    			<UseTunnel>True</UseTunnel>
    			<PBXPort>5060</PBXPort>
    			<SwitchboardMode>UserMode</SwitchboardMode>
    			<ShowUnregisteredExtensions>True</ShowUnregisteredExtensions>
    			<PresenceLayoutOrientation>Vertical</PresenceLayoutOrientation>
    			<PresenceViewMode>Grouped</PresenceViewMode>
    			<ActiveCallsFilter>115</ActiveCallsFilter>
    			<HiddenGroups>2</HiddenGroups>
    			<HiddenWallboardQueues></HiddenWallboardQueues>
    			<WallboardCustomMessage1>3CX Wallboard</WallboardCustomMessage1>
    			<WallboardCustomMessage2></WallboardCustomMessage2>
    		</Profile>
    	</Profiles>
    	<General>
    		<EchoCancellation>True</EchoCancellation>
    		<VAD>False</VAD>
    		<MicGain>4</MicGain>
    		<IsBusyLampFieldExpanded>False</IsBusyLampFieldExpanded>
    		<SwitchboardWindowLeft>1433</SwitchboardWindowLeft>
    		<SwitchboardWindowTop>22</SwitchboardWindowTop>
    		<SwitchboardWindowWidth>312</SwitchboardWindowWidth>
    		<SwitchboardWindowHeight>800</SwitchboardWindowHeight>
    		<IsSwitchboardWindowMaximized>False</IsSwitchboardWindowMaximized>
    		<DefaultDragAndDropTransferType>Blind</DefaultDragAndDropTransferType>
    		<ActiveCallsCallerColumnWidth>150</ActiveCallsCallerColumnWidth>
    		<ActiveCallsCalleeColumnWidth>150</ActiveCallsCalleeColumnWidth>
    		<ActiveCallsDurationColumnWidth>60</ActiveCallsDurationColumnWidth>
    		<SwitchboardLayoutTop>428</SwitchboardLayoutTop>
    		<SwitchboardLayoutBottom>1000</SwitchboardLayoutBottom>
    		<SwitchboardLayoutLeft>1</SwitchboardLayoutLeft>
    		<SwitchboardLayoutRight>1</SwitchboardLayoutRight>
    		<CustomImagePath>C:\ProgramData\3CXPhone for Windows\PhoneApp\HeaderImage.jpeg</CustomImagePath>
    	</General>
    </Accounts>

    Code que j'ai essayé (incluant celui en commentaire)
    Je souhaite faire l'ajout dans la section "General" du fichier, en dernier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Set xmlDoc=CreateObject("Microsoft.XMLDOM")
    xmlDoc.load XMLFILE
     
    'Locate the node 
    Set nNode2 = xmlDoc.selectsinglenode(XMLNODE)
     
    'Validate if existing
    If nNode2 Is Nothing Then
    	newEle = xmlDoc.createNode("IsCustomImageSet")
    	newText=xmlDoc.createTextNode("True")
    	newEle.appendChild(newText)
     
    	x = xmlDoc.getElementsByTagName("General")[0]
    	x.appendChild(newEle)
     
    	'set root = xmlDoc.documentElement("General")
    	'set new_book = xmlDoc.createNode(1, "IsCustomImageSet", "")
    	'set book_text = xmlDoc.createNode(3, "", "")
    	'book_text.text = "True"
    	'new_book.appendChild(book_text)
    	'root.insertBefore new_book, root.childNodes.Item(0)
     
    End if
     
    'Save the setting
    strResult = xmldoc.save(XMLFILE)
    J'avais réussi à faire l'ajout mais APRÈS la node "General" et non dedans (mais j'ai changé le code et je n'ai plus retrouvé comment j'avais fait).

    Merci de votre aide :-)

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,

    ça sent le copié/collé à l'aveugle
    une solution très simple mais qui ne gèrera pas l'absence du noeud General

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Set xmlDoc=CreateObject("Microsoft.XMLDOM")
    xmlDoc.load "accounts.xml"
     
    'Locate the node 
    Set nNode2 = xmlDoc.selectsinglenode("//Accounts/General/IsCustomImageSet")
     
    'Validate only if existing
    If nNode2 Is Nothing Then
    	Set newEle = xmlDoc.createNode(1,"IsCustomImageSet","")
    	newEle.appendChild(xmlDoc.createTextNode("True"))
    	Set generalNode = xmlDoc.selectsinglenode("//Accounts/General")
    	generalNode.appendChild newEle
    End if
    WScript.Echo xmlDoc.documentElement.xml
    'Save the setting
    strResult = xmldoc.save("accounts.xml")
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2015, 10h04
  2. Ecrire dans une balise <td> avec VBS
    Par Scarface698 dans le forum VBScript
    Réponses: 8
    Dernier message: 26/05/2008, 13h20
  3. Réponses: 4
    Dernier message: 21/02/2008, 17h33
  4. parser une string xml avec jsp
    Par issamos4 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/03/2007, 09h50
  5. [PHP-JS] PHP + VBS, reprendre une variable php avec vbs
    Par el_butcho dans le forum Langage
    Réponses: 6
    Dernier message: 25/08/2006, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo