Bonjour,
Je travaille actuellement sur un logiciel qui échange des documents (fichiers Xml) via une connexion SSL. Plutôt que d'utiliser des fichiers Xml en dur, les charger dans une chaine pour modifier les valeurs nécessaires, je voudrais les générer via le code.
Je sais le faire sauf quand les espaces de noms sont de la partie à priori![]()
J'ai des problèmes pour assigner plusieurs espaces de nom sur un même élément ainsi que pour assigner les préfixes.
Voici à quoi ressemble le fichier Xml que je souhaite générer
Un exemple du code utiliser pour le générer
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 <?xml version="1.0" encoding="UTF-8"?> <ns2:Enveloppe xmlns:ns1="..." xmlns:ns2="..." xmlns:ns3="..." Id="..."> <ns1:Emetteur> <ns1:IDCL ns1:Arrondissement="..." ns1:Departement="..." ns1:Nature="..." ns3:SIREN="..."/> <ns1:Referent> <ns1:Nom>...</ns1:Nom> <ns1:Telephone>...</ns1:Telephone> <ns1:Email>...</ns1:Email> </ns1:Referent> </ns1:Emetteur> <ns1:AdressesRetour> <ns1:Email>...</ns1:Email> </ns1:AdressesRetour> <ns1:FormulairesEnvoyes> <ns1:Formulaire> <ns1:NomFichier>...</ns1:NomFichier> </ns1:Formulaire> </ns1:FormulairesEnvoyes> <ns2:Documents> <ns2:Document xmlns:ns1="..." xmlns:ns2="..." Id="..."> <ns1:DemandeClassification xmlns:ns1="..." xmlns:ns3="..." xmlns:ns4="..."> <ns1:DateClassification>...</ns1:DateClassification> </ns1:DemandeClassification> </ns2:Document> </ns2:Documents> </ns2:Enveloppe>
Mais bien évidemment, je ne peux assigner qu'un seul espace de nom sur mon élément racine et mon élément emetteur se retrouve sans préfixe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "utf-8", null); XmlElement rootNode = doc.CreateElement("ns2", "Enveloppe", "..."); rootNode.SetAttribute("Id", "ID"); doc.InsertBefore(xmlDeclaration, doc.DocumentElement); doc.AppendChild(rootNode); XmlElement emetteur = doc.CreateElement("ns1", "Emetteur", null); rootNode.AppendChild(emetteur); ...
Je n'ai pas trouvé comment gérer les espaces de noms, en espérant que quelqu'un puisse m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="utf-8"?> <ns2:Enveloppe Id="ID" xmlns:ns2="..."> <Emetteur> ... <Emetteur/> ... </ns2:Enveloppe>![]()
Partager