Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1912 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  XML espace dans les noms de noeud, acces en python

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

XML espace dans les noms de noeud, acces en python

n°2380353
isanaud
Posté le 29-03-2021 à 09:58:17  profilanswer
 

J'aimerais changer en python la valeur de la mac address dans la definition d'une VM libvirt mais je suis confronté aux espaces dans les noms de noeuds.
Quel méthode d'acces conseillez vous ?
 

Code :
  1. <domain type="kvm">
  2.   <name>travail</name>
  3.   <uuid>53c9aafe-68b4-44cf-8f34-8a0cf3aa2973</uuid>
  4.   <metadata>
  5.     <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
  6.       <libosinfo:os id="http://microsoft.com/win/10"/>
  7.     </libosinfo:libosinfo>
  8.   </metadata>
  9.   <memory unit="KiB">4194304</memory>
  10.   <currentMemory unit="KiB">4194304</currentMemory>
  11.   <vcpu placement="static">2</vcpu>
  12.   <os>
  13.     <type arch="x86_64" machine="pc-q35-4.0">hvm</type>
  14.   </os>
  15.   <features>
  16.     <acpi/>
  17.     <apic/>
  18.     <hyperv>
  19.       <relaxed state="on"/>
  20.       <vapic state="on"/>
  21.       <spinlocks state="on" retries="8191"/>
  22.     </hyperv>
  23.     <vmport state="off"/>
  24.   </features>
  25.   <cpu mode="host-model" check="partial"/>
  26.   <clock offset="localtime">
  27.     <timer name="rtc" tickpolicy="catchup"/>
  28.     <timer name="pit" tickpolicy="delay"/>
  29.     <timer name="hpet" present="no"/>
  30.     <timer name="hypervclock" present="yes"/>
  31.   </clock>
  32.   <on_poweroff>destroy</on_poweroff>
  33.   <on_reboot>restart</on_reboot>
  34.   <on_crash>destroy</on_crash>
  35.   <pm>
  36.     <suspend-to-mem enabled="no"/>
  37.     <suspend-to-disk enabled="no"/>
  38.   </pm>
  39.   <devices>
  40.     <emulator>/usr/bin/qemu-system-x86_64</emulator>
  41.     <disk type="file" device="disk">
  42.       <driver name="qemu" type="raw"/>
  43.       <source file="/var/lib/libvirt/images/travail.img"/>
  44.       <target dev="sda" bus="sata"/>
  45.       <boot order="2"/>
  46.       <address type="drive" controller="0" bus="0" target="0" unit="0"/>
  47.     </disk>
  48.     <controller type="usb" index="0" model="qemu-xhci" ports="15">
  49.       <address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
  50.     </controller>
  51.     <controller type="sata" index="0">
  52.       <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
  53.     </controller>
  54.     <controller type="pci" index="0" model="pcie-root"/>
  55. ....
  56.     <controller type="pci" index="5" model="pcie-root-port">
  57.       <model name="pcie-root-port"/>
  58.       <target chassis="5" port="0x14"/>
  59.       <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
  60.     </controller>
  61.     <controller type="virtio-serial" index="0">
  62.       <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
  63.     </controller>
  64.     <interface type="bridge">
  65.       <mac address="00:15:5d:06:f5:01"/>
  66.       <source bridge="br_vlan2"/>
  67.       <model type="e1000e"/>
  68.       <boot order="1"/>
  69.       <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
  70.     </interface>
  71.     <serial type="pty">
  72.       <target type="isa-serial" port="0">
  73.         <model name="isa-serial"/>
  74.       </target>
  75.     </serial>
  76.    ...
  77.     <video>
  78.       <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
  79.       <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
  80.     </video>
  81.     <redirdev bus="usb" type="spicevmc">
  82.       <address type="usb" bus="0" port="2"/>
  83.     </redirdev>
  84.     <redirdev bus="usb" type="spicevmc">
  85.       <address type="usb" bus="0" port="3"/>
  86.     </redirdev>
  87.     <memballoon model="virtio">
  88.       <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
  89.     </memballoon>
  90.   </devices>
  91. </domain>

Message cité 1 fois
Message édité par isanaud le 29-03-2021 à 10:51:57
mood
Publicité
Posté le 29-03-2021 à 09:58:17  profilanswer
 

n°2380426
rat de com​bat
attention rongeur méchant!
Posté le 29-03-2021 à 21:26:07  profilanswer
 

Tu cherches peut-être complètement autre chose, à savoir virt-sysprep? https://libguestfs.org/virt-sysprep.1.html


Message édité par rat de combat le 29-03-2021 à 21:26:12
n°2384233
djinto
Posté le 07-05-2021 à 14:44:58  profilanswer
 

Bonjour,

 

un accès Xml , c'est à dire 'lire' un fichier , ou le contenu d'une balise Xml dans un fichier en contenant des milliers,

 

ça se fait par utilisation de la hierarchie Xml , c'est un ensemble de noeuds et de sous noeuds.

 


Les méthodes dans les Xml Reader elles permettent des accès différents :
- accès par la sémantique d'une balise XmlReader ->get_<exemple>

 

- accès par la valeur d'un attribut ... ->get ( id = ?????? )  , ou  Name= ?????

 

c'est vraiment les accès les plus précis, les plus détaillés.

 

Les espaces de noms, c'est des indications sur des 'membres' de ton fichier Xml ...
en fait, ta liste Xml contient d'autres "fichiers" Xml ...
c'est aussi un schéma, une référence pour un Type Xml ...
donc un 'hive' d'espace de noms , et une écriture pour un élèment ( déjà référencé par des organismes Xml )

 

C'est aussi de la normalisation , on va pas le réécrire encore, ni le rendre incompatible cet "être Xml".

 


Le souci de "l'espace"  dans les balises, c'est un problème de validation,
ta ressource Python est mal utilisée, ou il manque un paramètre à ton validateur.
tu a des niveaux de validation { strict // ..... etc ... }
c'est comme ON / OFF ..
c'est une lecture + souple qui se fera pour ton fichier.

 

et pour les schèmas , et faire toi même ton motif de validation : c'est "Xsd"  et "Xml Validator" [  une autre syntaxe  ;)  ]


Message édité par djinto le 07-05-2021 à 15:17:35
n°2384286
masklinn
í dag viðrar vel til loftárása
Posté le 07-05-2021 à 16:16:05  profilanswer
 

isanaud a écrit :

J'aimerais changer en python la valeur de la mac address dans la definition d'une VM libvirt mais je suis confronté aux espaces dans les noms de noeuds.


Il n'y a pas d'espaces dans les noms de noeuds en XML, ça n'existe pas. D'ailleurs le bordel que tu postes n'en a pas.
 
Et si tu es en python, la librairie standard a plusieurs paquets permettant de lire, interroger, et écrire du XML.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2384710
isanaud
Posté le 10-05-2021 à 18:52:18  profilanswer
 

je fais certainement une erreur de vocabulaire mais l'élément  mac address  
     a bien espace et il me pose un soucis pour récupérer la valeur associée.

n°2384711
masklinn
í dag viðrar vel til loftárása
Posté le 10-05-2021 à 18:56:56  profilanswer
 

isanaud a écrit :

je fais certainement une erreur de vocabulaire


C'est pas une erreur de vocabulaire c'est une totale méconnaissance et incompréhension du format.

isanaud a écrit :

mais l'élément  mac address a bien espace et il me pose un soucis pour récupérer la valeur associée


C'est un attribut. L'élément a un attribut. C'est l'une des principales structures logiques du XML. N'importe quelle lib XML permet d'accéder aux attributs et de récupérer la valeur associée.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2384732
isanaud
Posté le 10-05-2021 à 21:06:54  profilanswer
 

masklinn a écrit :


C'est pas une erreur de vocabulaire c'est une totale méconnaissance et incompréhension du format.

 
masklinn a écrit :


C'est un attribut. L'élément a un attribut. C'est l'une des principales structures logiques du XML.


Si tu as un lien vers un site qui explique ça simplement, je suis preneur :jap:


Message édité par isanaud le 10-05-2021 à 21:07:57
n°2384742
Je@nb
Kindly give dime
Posté le 10-05-2021 à 23:09:26  profilanswer
 
n°2384828
rufo
Pas me confondre avec Lycos!
Posté le 12-05-2021 à 09:00:14  profilanswer
 

Tout ce que t'as à faire, c'est collecter les nœuds <uuid>, les parcourir en changeant leur valeur et enregistrer le résultat.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  XML espace dans les noms de noeud, acces en python

 

Sujets relatifs
déplacer un noeud d'un arbre vers un autre noeud[RESOLU !!] Ajouter noeud fichier xml powershell
espace privé[DOS] supprimer espace en fin de ligne
espace entre celluleNom avec espace -----> problème de compilation
[SQL Server / Cobol GCOS] Insert Varchar sans espaceBATCH, FOR/R rename fichier avec espace dans le nom
Suppression espace dans celluleComment diminuer l'espace entre les <figure> ?
Plus de sujets relatifs à : XML espace dans les noms de noeud, acces en python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR