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

MS SQL Server Discussion :

Transformer un .xml


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Par défaut Transformer un .xml
    Bonjour,

    Je cherche à supprimer certains elements d'un fichier xml.

    Voici le début du fichier en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-16"?>
    <ArrayOfWF_Produit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <WF_Produit>
        <CategorieCommercialeAchat xmlns="http://www.sage.com/fr/line1000/webservicesfacturation">APRIN</CategorieCommercialeAchat>
        <CategorieCommercialeVente xmlns="http://www.sage.com/fr/line1000/webservicesfacturation">VPRIN</CategorieCommercialeVente>
    Et je souhaite supprimer les "xmlns="http://www.sage.com/fr/line1000/webservicesfacturation""

    Ce qui donnerait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-16"?>
    <ArrayOfWF_Produit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <WF_Produit>
    	  <CategorieCommercialeAchat >APRIN</CategorieCommercialeAchat>
        <CategorieCommercialeVente>VPRIN</CategorieCommercialeVente>
    Bien sur je voudrait que ça se fasse automatiquement, via un script peut-être?

    Je débute juste en VS donc soyez indulgent svp

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    e débute juste en VS donc soyez indulgent svp
    Vous voulez le faire dans une classe ou bien dans la base de données ?

    @++

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Par défaut
    Je souhaite le faire dans une classe, en gros qu'on remplace "xmlns="http://www.sage.com/fr/line1000/webservicesfacturation" par un simple espace par exemple.

    Une idée?

    Merci =)

  4. #4
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Fonction REPLACE
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 20
    Par défaut
    ouaip c'est ce que j'ai fais mais ça ne fonctionne pas.
    Il faut peut-être faire un write après pour ré-écrire dans le fichier nn?

    Voici le code que j'ai écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            If InStr(1, sLine, "xmlns=""http://www.sage.com/fr/line1000/webservicesfacturation""", vbTextCompare) <> 0 Then
                bValueExists = True
                sLine = Replace(sLine, "xmlns=""http://www.sage.com/fr/line1000/webservicesfacturation""", "")
                MsgBox(sLine.IndexOf("xmlns=""http://www.sage.com/fr/line1000/webservicesfacturation"""))
            Else
                bValueExists = False
            End If
    C'est pas très propre certes mais c'est pour le principe ^^

    EDIT: Le soucis c'est que je traite les lignes 1 par 1, du coup est-ce que je peux réinjecter la ligne en cours de traitement dans le fichier et A LA BONNE PLACE?
    Je peux pas traiter le fichier tout entier car il fait plus de 5000 lignes et j'ai pas l'impression qu'il n'arrive pas à traiter les long fichiers...

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Un doc XML se manipule avec des méthodes XML, c'est pas du caractères.

    Vous avez la méthode modify pour cela.

    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE @XML XML
    SET @XML = '<?xml version="1.0"?>
    <ArrayOfWF_Produit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <WF_Produit>
        <CategorieCommercialeAchat xmlns="http://www.sage.com/fr/line1000/webservicesfacturation">APRIN</CategorieCommercialeAchat>
        <CategorieCommercialeVente xmlns="http://www.sage.com/fr/line1000/webservicesfacturation">VPRIN</CategorieCommercialeVente>
      </WF_Produit>
    </ArrayOfWF_Produit>'
     
    SET @XML = @XML.modify('
    delete /ArrayOfWF_Produit/WF_Produit/CategorieCommercialeAchat/@xmlns
    ')
     
    SELECT @XML
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [XSLT][.NET] Transformer du XML dans un string
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/10/2005, 15h41
  2. [XML][XSLT] transformer le xml en binaire via une xslt
    Par chama dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2005, 11h42
  3. transformation xhtml->xml (choose|if test)?
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/06/2005, 10h46
  4. Transformation xhtml -> xml (probleme xmlns)
    Par yos dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 08/06/2005, 18h12
  5. [XSLT] transformation XHTML->XML
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 23/05/2005, 13h15

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