Bonjour,
Pour le besoin d'un client, j'ai besoin via un logiciel (BizTalk) de modifier le namespace d'un fichier XML.
Je me confronte à un problème.
Avant ceci, voici le début du fichier XML :
J'aimerais modifier la valeur de mon attribut xmlns:ns0
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 <?xml version="1.0" encoding="utf-8"?> <ns0:SBTComptage xmlns:ns0="http://tempuri.org/SBTComptage.xsd"> <ns0:Header> <ns0:Environnement>PROD</ns0:Environnement> <ns0:DocDate>2015-01-08</ns0:DocDate> <ns0:Version>1.0</ns0:Version> <ns0:DocType>Comptage</ns0:DocType> <ns0:Emetteur>InfraJ</ns0:Emetteur> <ns0:Unite>kWh</ns0:Unite> <ns0:Temperature>25°</ns0:Temperature> <ns0:Expediteur>2000</ns0:Expediteur> </ns0:Header> <ns0:ListOfGasDay> <ns0:GasDay> </ns0:GasDay> </ns0:ListOfGasDay>
XmlDocument
Le problème est lorsque je passe par un XmlDocument, ça me modifier bien mon attribut xmlns:ns0, mais automatiquement une balise xmlns est ajouté aux autres noeuds :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 string targetNS = "monnamespace"; XmlDocument message = new XmlDocument(); message.Load("fichier.xml"); message.DocumentElement.SetAttribute("xmlns:ns0", targetNS);
Est-ce normal que l'attribut xmlns:ns0 soit ajouté aux autres noeuds ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <ns0:SBTComptage xmlns:ns0="http://monnamespace"> <ns0:Header xmlns:ns0="http://tempuri.org/SBTComptage.xsd"> <ns0:Environnement>PROD</ns0:Environnement> <ns0:DocDate>2015-01-08</ns0:DocDate> <ns0:Version>1.0</ns0:Version> <ns0:DocType>Comptage</ns0:DocType> <ns0:Emetteur>InfraJ</ns0:Emetteur> <ns0:Unite>kWh</ns0:Unite> <ns0:Temperature>25°</ns0:Temperature> <ns0:Expediteur>2000</ns0:Expediteur> </ns0:Header> <ns0:ListOfGasDay xmlns:ns0="http://tempuri.org/SBTComptage.xsd"> <ns0:GasDay>
Mon approche est mauvaise ?
En regardant le détails de l'objet "message" en debug, je constate que le innerxml reste correct, cependant en passant par DocumentElement l'attribut xmlns est ajouté.
Je assez novice côté namespace du coup je galère un peu.
Merci d'avance.
Partager