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

SAS Base Discussion :

Importer tous les champs d'un fichier XML en chaîne de caractère dans une table


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Importer tous les champs d'un fichier XML en chaîne de caractère dans une table
    Bonjour,

    J'importe un fichier XML avec la méthode libname
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    libname FicXml xml './../../test.xml';
    Lorsqu'un champ contient exclusivement des caractères numériques par exemple <ID>012345</ID>,
    SAS créé dans la table un champ ID de type numérique avec comme valeur 12345 alors que je veux conserver tous les caractères.
    Y a t il un moyen de forcer SAS à importer tous les champs en chaîne de caractères.

    Merci de votre aide

    Josephus.


    SAS Entreprise Guide 3.0
    SAS V9.1 / Unix

  2. #2
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    Bonjour Josephus,

    Je ne suis pas un grnad habitué du libname et encore moins des fichiers xml, mais ya un auter moyen assez simple via une étape data:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data fich;
    	INFILE "source\xml" 
    	firstobs=2
    	lrecl=10000
    	missover
    	dsd/*to handle missing values within a line (not at the end of the line)*/;
    	length v1-v21 $20;
    	input v1-v21 $;
    run;

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Manoutz,

    Je ne crois pas qu’avec la méthode « Infile », on puisse importer un fichier XML.
    Il me semble qu’ « Infile » permet seulement importer des fichiers plats soit avec un séparateur (point virgule, tabulation,…) ou des champs de longueur fixe.

    Merci de ton aide

    Josephus

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2009
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Bonjour Josephus,

    Pour lire un fichier XML, je vous conseille d'utiliser le moteur de bibliothèque XML. Comme les autres moteurs de bibliothèques (Oracle, Excel,...), le moteur XML vous permettra de visualiser les données sous la forme de tables SAS.

    Pour plus d'informations, vous pouvez vous reporter à la section dédiée à ce sujet sur le site du support US de SAS à l'adresse suivante : http://support.sas.com/rnd/base/xmlengine/index.html.

    BI Keynotes Webmaster
    Blog : Business Intelligence Keynotes

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour bikeynotes,

    Merci pour l'info.
    Effectivement pour "typer" les champs d'un fichier XML, on doit utiliser un fichier de mappage. J'ai créé mon fichier de mappage à l'aide de SAS XML Mapper.

    Ci-dessous le code à saisir dans SAS pour importer un fichier XML mapper.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    filename  FICXML './../../fic1.xml';
    filename  SXLEMAP './../../XmlMAP.map';
    libname   FICXML xml xmlmap=SXLEMAP access=READONLY;
    Josephus

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

Discussions similaires

  1. Extraire et exporter tous les champs d'un fichier txt
    Par lole81 dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 04/02/2015, 21h44
  2. Réponses: 2
    Dernier message: 08/07/2010, 09h44
  3. Réponses: 2
    Dernier message: 14/02/2010, 19h30
  4. [JDOM] Recpérer une liste de tous les éléments d'un fichier XML
    Par adilo dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 30/08/2006, 10h15
  5. Rechercher une chaîne de caractère dans une série de fichier
    Par Edoxituz dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/02/2006, 12h51

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