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

VB.NET Discussion :

généré un fichier xml avec une variable nommé "Date"


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 48
    Points
    48
    Par défaut généré un fichier xml avec une variable nommé "Date"
    Bonjour,

    Voici mon problème, je me rend compte après avoir écris mon code pour un outil, que le nom d'une variable d'une structure qui me permet de générer un fichier xml en sortie doit impérativement s'appeler "date", mais mon problème est que vb.net ne permet pas d'utiliser ce mot comme variable.
    du coup je me sens coincé, je ne sais pas trop quoi faire maintenant que tout mon code est écrit:

    Voici en substance mon 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
    23
    24
    Public Structure ValidationFile
    	Public Header As VHEADER
    	Public ValidationList() As Validation
    End Structure
    
    'Structure VHEADER
    Public Structure VHEADER
    	Public XsdVersion As String	
    	Public SessionStartDate As String
    End Structure
    
    'Structure VAL
    Public Structure Validation
    	Public VDate As String
    	Public CardSerialNumber As String
    	Public CompanyCode As String
    	Public MediaType As String
    	Public CardType As String
    	Public ValidationStatusId As String
    	Public FailureReasonId As String
    	Public ValidationStateId As String
    	Public ProductStartValidity As String
    	Public ProductEndOfValidity As String
    End Structure
    Je fais tout un traitement pour renseigner les valeurs de ma structure, puis je transforme cette structure en document xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public function pValidationFileToXml(byval pValidationFile As ValidationFile) As XmlDocument
     
    	Dim doc As XmlDocument
            doc = SerializeToXmlDocument(pValidationFile)
    	Return doc
     
    End Function
    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
    Public Function SerializeToXmlDocument(input As Object) As XmlDocument
     
    	Dim ser As XmlSerializer = New XmlSerializer(input.GetType(), "http://monsite.com/validationFile")
     
     
            Dim xd As XmlDocument = Nothing
            Using memStm As MemoryStream = New MemoryStream()
                ser.Serialize(memStm, input)
     
                memStm.Position = 0
     
                Dim settings As New XmlReaderSettings()
     
                settings.IgnoreWhitespace = True
     
                Using xtr As XmlReader = XmlReader.Create(memStm, settings)
                	xd = New XmlDocument()
                    xd.Load(xtr)
                End Using
            End Using
     
            Return xd
        End Function
    puis je sauvegarde mon fichier xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim pValidationFileXml As XmlDocument = pValidationFileToXml(pValidationFile)
    pValidationFileXml.Save(Application.StartupPath & "\temp\" & "temp.xml")
    mais du coup je me retrouve avec ce champs "VDate" qui devrait s'appeler "Date" issu de la déclaration de la structure, le problème étant que je ne peux pas déclarer ce champs comme je le souhaite dans la structure car Date est un mot du langage VB.net

    Code XML : 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
    <?xml version="1.0"?>
    <ValidationFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://monsite.com/validationFile">
      <Header>
        <XsdVersion>1.9</XsdVersion>
        <SessionStartDate>2020-05-28T10:20:19</SessionStartDate>
      </Header>
      <ValidationList>
        <Validation>
          <VDate>2020-05-28T10:38:35</VDate>
          <CardSerialNumber>c35666f1</CardSerialNumber>
          <CompanyCode>1</CompanyCode>
          <MediaType>8</MediaType>
          <CardType>6</CardType>
          <ValidationStatusId>1</ValidationStatusId>
          <FailureReasonId>0</FailureReasonId>
          <ValidationStateId>1</ValidationStateId>
          <ProductStartValidity>2020-05-28T00:00:00</ProductStartValidity>
          <ProductEndOfValidity>2020-06-03T23:59:00</ProductEndOfValidity>
        </Validation>
      </ValidationList>
    </ValidationFile>

    Merci pour vos idées et conseil.

    cordialement,
    yaume91

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    bonjour
    Tu dois te munir parfois de crochets en VB.Net pour attraper ta proie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Structure Test
        Public [Date] As String
        Public SerialNumber As String
        Public Sub New(idate As String, iserialnumber As String)
            [Date] = idate
            SerialNumber = iserialnumber
        End Sub
    End Structure
    bon code....

  3. #3
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    D'une façon un peu plus génerique à la xml, décorer la variable avec un attribut XmlElement précisant le nom qu'on veut avoir comme nom d'élément xml.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	'Public VDate As String
    	<XmlElement("Date")> Public VDate As String

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/02/2013, 16h21
  2. Lien vers un fichier XML avec une feuille XSLT
    Par Raphael_Lemaire dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/10/2008, 23h16
  3. [DTD] valider un fichier XML avec une DTD
    Par Anubis dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 18/02/2008, 18h00
  4. Réponses: 3
    Dernier message: 24/04/2007, 11h39
  5. [DTD] Valider fichier xml avec une DTD externe
    Par Tail dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 26/06/2006, 18h14

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