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

Composants FMX Delphi Discussion :

XMLDocument et attributs spéciaux comme 'xlink:href'


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 624
    Billets dans le blog
    65
    Par défaut XMLDocument et attributs spéciaux comme 'xlink:href'
    Bonjour,

    je tombe dans le cas de figure décrit dans ce billet http://riversoftavg.com/blogs/index....r-differences/
    seulement je n'arrive pas à comprendre sa solution

    voilà donc mon début de code
    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
    procedure TFormSVGLoadTest.LoadSVG(aFile: TFileName);   // afile est un fichier SVG 
    var XmlSvg : IXMLDocument;
         node: IXMLNode;
         idx : integer;
    begin
      DefaultDOMVendor := 'ADOM XML v4';
      XmlSvg := LoadXMLDocument(aFile);
      ... 
      for idx := 0 to XmlSvg.DocumentElement.ChildNodes.Count - 1 do
      begin
        node := XmlSvg.DocumentElement.ChildNodes[idx];
        .... 
    
       if node.NodeName='use' then
        begin
          if node.HasAttribute('xlink:href') then   // vrai 
           begin
              // comment obtenir l'attibut ?
           end;  
      end;
    end;
    dans mon cas je veux obtenir l'attribut de cette ligne <use xlink:href="#h" transform="translate(24000,0) scale(-1,1)"/> au sein de ce fichier
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1500" height="1000" viewBox="0 0 24000 16000">
    <title>Flag of Barbados</title>
    <rect width="24000" height="16000" fill="#00267f" />
    <rect width="8000" height="16000" fill="#ffc726" x="8000" />
    <path id="h" fill="#000"
    d="M 12000,4124 C 11740,4833 11475,5571 10908,6136 C 11084,6078 11392,6026 11590,6031 L 11590,9013 L 10748,9138 C 10718,9135 10708,9088 10708,9024 C 10627,8098 10408,7320 10156,6515 C 10138,6405 9819,5985 10065,6059 C 10095,6063 10424,6197 10372,6133 C 9924,5669 9269,5335 8633,5236 C 8577,5222 8544,5250 8594,5315 C 9438,6614 10144,8147 10138,9966 C 10466,9966 11261,9772 11590,9772 C 11590,9772 11590,11876 11590,11876 L 12005,11876 12100, 6000 z"/>
    <use xlink:href="#h" transform="translate(24000,0) scale(-1,1)"/>
    </svg>

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 624
    Billets dans le blog
    65
    Par défaut
    Oubliez ou pas à peine posé la question j'ai continué mes recherches et fini par trouver un bout de code qui m'a mis sur la voie

    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
    27
    28
    29
    30
    procedure TFormSVGLoadTest.LoadSVG(aFile: TFileName);   // afile est un fichier SVG 
    var XmlSvg : IXMLDocument;
         node: IXMLNode;
         idx : integer;
         aString, val : String;
    begin
      DefaultDOMVendor := 'ADOM XML v4';
      XmlSvg := LoadXMLDocument(aFile);
      ... 
      for idx := 0 to XmlSvg.DocumentElement.ChildNodes.Count - 1 do
      begin
        node := XmlSvg.DocumentElement.ChildNodes[idx];
        .... 
     
       if node.NodeName='use' then
        begin
          if node.HasAttribute('xlink:href') then   // vrai 
           begin
              // comment obtenir l'attribut 
            aString:=node.FindNamespaceURI('xlink');
            val:=Node.GetAttributeNS('href',aString);
            .... 
            if node.HasAttribute('transform') then
             begin
              aPath.Data.Translate(2400,0);
              aPath.Data.scale(-1,1);
            end;
           end;  
      end;
    end;
    et voilà le résultat en image
    Nom : Capture.PNG
Affichages : 142
Taille : 10,0 Ko

    je vais pouvoir m'attaquer à d'autres NodeNames comme 'circle' , le drapeau du Japon me pose pas mal de soucis , une fois que j'airais réglé le problème de l'attribut transform pour l'instant codé directement

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2017, 12h47
  2. JDOM et attribut "xlink:href"
    Par HopeLeaves dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/03/2007, 10h06
  3. [Requête VBA] Gèrer les caractères spéciaux comme [ ' ]
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 17/07/2006, 15h32
  4. [xslt] passer le nom d'un attribut comme param
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/11/2005, 11h03
  5. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44

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