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

Python Discussion :

[minidom] createTextNode caractèere spéciaux/entité html [Python 2.X]


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 783
    Points : 437
    Points
    437
    Par défaut [minidom] createTextNode caractèere spéciaux/entité html
    Bonjour à tous,

    Je bloque depuis quelques jours sur un problème avec minidom et les caractères spéciaux/entité html.

    En effet, je dois créer un fichier XML dans lequel je dois remplacer 4 espaces(ce qui équivaut à une tabulation) par "& #9;" (sans l'espace)

    D'après ce post (javascript mais problématique similaire), il suffirait de remplacer mon entité html par son code unicode.

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    attrValue = attrValue.replace("    ", "\u0026#9;")
    div.appendChild(doc.createTextNode(attrValue.decode("mbcs")))
    ...
    doc.toprettyxml(indent='\t')


    hélas dans le fichier résultat, c'est bien "u0026#9;" qui apparait

    Merci d'avance
    Le savoir est une arme alors soyons armés

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 783
    Points : 437
    Points
    437
    Par défaut
    J'ai fini par arriver à mes fins à l'aide de ce sujet :
    https://stackoverflow.com/questions/...ape-my-strings
    Le savoir est une arme alors soyons armés

  3. #3
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Je suis pas bien certain d'avoir compris le résultat devant être obtenu, mais en utilisant les cdata, le résultat ne serait pas celui souhaité ?

    Du genre :

    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
    from xml.dom import minidom
     
    doc = '''\
    <root>
    <el>un    texte    avec    des    espaces</el>
    </root>
    '''
     
    dom = minidom.parseString(doc)
    el = dom.getElementsByTagName('el')[0]
    txt = el.childNodes[0].data
     
    root = dom.getElementsByTagName('root')[0]
    nel = dom.createElement('el')
    ntxt = txt.replace(' '*4, '& #9;') # sans l'espace :D
    nel.appendChild(dom.createCDATASection(ntxt))
    root.appendChild(nel)
     
    print(dom.toxml())
    Le temps ronge l'amour comme l'acide.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 783
    Points : 437
    Points
    437
    Par défaut
    Le résultat souhaité est une balise div avec (entre autre) les caractères "& #9;" pour simuler les tabulations

    exemple :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <div>when<br />& #9;i==2</div>

    je ne connaissais tout simplement pas createCDATASection.

    Ça répond également à mon problème. Le résultat est même meilleur
    D'ailleurs, je n'ai même plus besoin de mon caractère & #9; avec cette solution

    Merci beaucoup !
    Le savoir est une arme alors soyons armés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encoder caractere spéciaux en HTML
    Par xYz-Falcon dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/05/2011, 17h28
  2. [HTML::Entities] caracteres spéciaux
    Par Katachana dans le forum Modules
    Réponses: 2
    Dernier message: 25/03/2008, 13h02
  3. Réponses: 1
    Dernier message: 26/09/2007, 20h38
  4. [VBS] - Caractéres Spéciaux et entités HTML
    Par RegiO dans le forum VBScript
    Réponses: 6
    Dernier message: 07/11/2006, 15h42
  5. Réponses: 4
    Dernier message: 26/09/2006, 19h11

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