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

Interfaçage autre langage Python Discussion :

Déplacer une ligne de code dans un fichier XML ?


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Déplacer une ligne de code dans un fichier XML ?
    Bonjour,
    Je travaille avec Inkscape, un logiciel de dessin vectoriel qui génère des fichiers de dessin au format XML.

    Pour déplacer un élément ou groupe d'éléments d'un calque vers un autre, il y a deux possibilités :
    1. Couper (Ctrl + x) l'élément (le chemin, le groupe de chemins, ...) sélectionné avec l'outil de sélection puis se déplacer dans le second calque (en cliquant dessins dans la fenêtre des calques, puis coller.
    Et là, le travail n'est pas terminé car il faut encore réaligner l'élément déplacé avec les autres.

    2. Autre solution : ouvrir l'outil appelé "éditeur XML" contenu dans Inkscape et ensuite, en cliquant sur l'élément, mettre son nom en sur-birillance dans l'arbre SVG du fichier XML (pour retrouver l'objet parmi la multitude d'objets que j'ai déjà dessinés) puis déplacer cette sélection dans l'arbre SVG jusqu'à sa position dans le second calque.

    Avec quelques éléments peu nombreux, ça va; mais quand on en a une cinquantaine à déplacer, c'est déjà moins gai !

    Je voudrais donc pouvoir, à partir d'une extension dans Inkscape, faire déplacer mes éléments "automatiquement".
    Pour ce faire, je dois "simplement déplacer la ligne de code se rapportant à un élément d'un emplacement (dans un calque) vers un autre emplacement (un autre calque) dans l'arborescence SVG du document.

    Ma ligne de code, qui est un élément fils du calque 1 doit remonter l'arborescence d'un ou plusieurs niveaux, atteindre le calque 2 et là, aller s'y placer comme fils de ce calque.

    Et c'est là que je suis bloqué.
    Comment puis-je faire, depuis Python, pour "déplacer" une ligne de code XML d'un emplacement vers un autre dans l'arborescence SVG du fichier XML de mon dessin ?

    Dans Inkscape, il est possible d'avoir accès directement aux éléments qui constituent le fichier de dessin ainsi qu'à leurs attributs.
    Ca, je l'ai déjà assimilé mais je n'arrive pas à déplacer un élément dans l'arborescence des éléments du fichier.

    Un petit exemple :
    Mon dessin contient 3 calques qui contiennent chacun des éléments.

    Mon dessin
    ***|------ Calque 1 ----- Elément 1
    ***|***************|-- Elément 2
    ***|***************|-- Elément 3
    ***|------ Calque 2 ----- Elément 01
    ***|***************|-- Elément 02
    ***|------ Calque 3 ----- Elément 001
    ***************|-- Elément 002

    Mon dessin
    ***|------ Calque 1 ----- Elément 1
    ***|**************|-- Elément 2
    ***|**************|-- Elément 02
    ***|**************|-- Elément 3
    ***|------ Calque 2 ----- Elément 01
    ***|------ Calque 3 ----- Elément 001
    ******************|-- Elément 002

    J'espère que vous comprendrez mieux avec un petit dessin.
    Mon "Elément 02" (en rouge) qui se trouve dans le "Calque 2", je voudrais qu'il se retrouve dans le "Calque 1"
    Et cela doit se faire en déplaçant la ligne de code correspondant à cel "Elément 02", dans le fichier SVG écrit en XML, dans l'arborescence des éléments du dessin.

    C'est ça que je n'arrive pas encore à faire.

    Merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Points : 290
    Points
    290
    Par défaut
    Regarde du coté de xml.dom et xml.dom.minidom.
    Tu dois "facilement" pouvoir supprimer un nœud et le recopier ailleurs.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut
    Merci nyko77,
    Je vais aller voir de ce côté.
    A+

Discussions similaires

  1. Rajouter une ligne de code dans un fichier php
    Par lolo81100 dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 01/11/2013, 11h36
  2. Réponses: 4
    Dernier message: 06/09/2009, 20h08
  3. Revenir une ligne en arrière dans un fichier
    Par Yunchi dans le forum Débuter
    Réponses: 22
    Dernier message: 17/04/2009, 16h37
  4. une action dans excel peut elle créer une ligne de code dans VBA?
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/09/2008, 07h23
  5. [langage] Sauter une ligne en ecrivant dans un fichier
    Par mickey02 dans le forum Langage
    Réponses: 3
    Dernier message: 17/03/2005, 18h02

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