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

Bibliothèques et frameworks PHP Discussion :

[XML] DTD et définition d'un attribut ID


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut [XML] DTD et définition d'un attribut ID
    Bonjour ,

    j ai un probleme lorsque j essaye de fixer un attribut comme ID a mes balises xml ... le but final est de pouvoir utiliser la fonction DOMDocument::GetElementById(id).

    Donc voila j ai mon xml
    <!DOCTYPE magasin SYSTEM "magasin.dtd">
    <xml version="1.0" encoding="utf-8">
    <magasin>
    <moto nom="GSXR1000" cylindree="999" />
    <moto nom="GSXR1100" cylindree="1100" />
    </magasin>
    </magasin>
    </xml>
    mais pour pouvoir utiliser la fonction getElementById il faut d apres ce que j ai lu que je fixe un ID a mes balises moto sur un des attributs de la balise ... je choisit donc de prendre l attribut nom comme ID

    donc je fais le fichier magasin.dtd suivant :
    <!ATTLIST moto nom ID #REQUIRED>
    cependant j ai pas mal d erreurs ....

    qu elle solution y a t il pôur mon pb ???

    merci

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Pourtant, ton extrait de code semble bien formé.
    Quelles sont les erreurs ?
    As tu essayer de former ta dtd et tonfichier xml avec un logiciel dédié au xml (oxygen par exemple)
    Z.

  3. #3
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    Ben ouais .... mais aparemment faut definir toutes les balises ELEMENT et leurs ATTRIBUTs du coup comme mon XML ne sera jamais enorme .... ben je v parcourir moi meme les balises et tester l attribut nom (considere comme l ID) .

    Je voulais utiliser getElementById pour optimiser mais vu la taille de mon XML l optim ne sera meme pas visible .... donc pas de DTD... et plus d emmerdes

    Merci quand à toi Zwiter
    ++

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Et vous validez bien le document ? (méthode validate, après chargement du document, ou propriété validateOnParse, avant le chargement, de votre objet DomDocument)

    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
    $xml = <<< EOX
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE magasin [
        <!ELEMENT magasin (moto*)>
        <!ELEMENT moto EMPTY>
        <!ATTLIST moto nom ID #REQUIRED cylindree CDATA #REQUIRED>
    ]>
    <magasin>
        <moto nom="GSXR1000" cylindree="999" />
        <moto nom="GSXR1100" cylindree="1100" />
    </magasin>
    EOX;
    
    $dom = new DomDocument;
    $dom->preserveWhiteSpace = FALSE;
    $dom->validateOnParse = TRUE;
    $dom->loadXML($xml);
    
    $gsxr1000 = $dom->getElementById('GSXR1000');
    echo $gsxr1000->getAttribute('cylindree');
    
    echo '<hr />';
    
    $gsxr1100 = $dom->getElementById('GSXR1100');
    echo $gsxr1100->getAttribute('cylindree');

Discussions similaires

  1. [XML/DTD] Déclaration d'attributs dans un doc XML
    Par citizen87 dans le forum Valider
    Réponses: 4
    Dernier message: 09/05/2006, 11h03
  2. [XML][DTD] Générer un XML avec une DTD ?
    Par elitost dans le forum Valider
    Réponses: 6
    Dernier message: 04/05/2005, 12h48
  3. Validation d'un document XML / DTD
    Par chris_tal1 dans le forum Valider
    Réponses: 2
    Dernier message: 16/07/2004, 15h19
  4. Entité dans la définition d'un attribut ?
    Par iceman dans le forum Valider
    Réponses: 3
    Dernier message: 09/03/2004, 16h16
  5. [XML][DTD] Creer un parser à partir d'une DTD
    Par schnekre dans le forum Valider
    Réponses: 4
    Dernier message: 15/12/2003, 12h59

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