retour a la ligne lors de la création d'élément xml
bonjour,
je revient vers vous pour la poursuite d'un code que ce forum m'a déjà grandement aidé a écrire ( voir mes précédents posts :lol: ) pour rappel il s'agit de piocher des éléments dans un fichier .gpx pour les replacer dans une structure xml existante.. jusque la tout va bien , seulement après avoir importé le fichier ainsi crée dans le programme censé le traiter celui ci ne le reconnait pas :aie:
pourtant la structure xml est correcte, par contre en ouvrant un autre fichier qui "marche" dans notepad et en le comparant avec le fichier généré une différence saute aux yeux c'est l'apparence "texte" des deux fichiers qui n'est pas identique ( nombre d'espace etc..
c'est pourquoi j'ai transformé mon code de :
Code:
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 27 28 29 30 31 32 33 34 35
| Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim path1 As String = TextBox2.Text
Dim path2 As String = TextBox3.Text
Dim path3 As String = TextBox4.Text
Dim saisie As String = TextBox1.Text
'etape1
Dim docvierge As XDocument = XDocument.Load(path2)
Dim docgpx As XDocument = XDocument.Load(path1)
Dim nsVierge = docvierge.Root.GetDefaultNamespace
Dim symbolTag As XElement
symbolTag = docvierge.Root...<Symbol>.Single
Dim i As Integer
i = 0
For Each trkpt In docgpx.Root.Descendants(docgpx.Root.GetDefaultNamespace + "trkpt")
symbolTag.Add(<<%= nsVierge + "Coordinate" %>>
<<%= nsVierge + "latitude" %>><%= trkpt.@lat %></>
<<%= nsVierge + "longitude" %>><%= trkpt.@lon %></>
</>)
i = i + 1
Next
Dim title As XElement
title = docvierge.Root...<Title>.Single
title.SetValue(saisie)
docvierge.Save(path3) |
a ceci :
Code:
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 27 28 29 30 31 32 33 34 35
| Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim path1 As String = TextBox2.Text
Dim path2 As String = TextBox3.Text
Dim path3 As String = TextBox4.Text
Dim saisie As String = TextBox1.Text
'etape1
Dim docvierge As XDocument = XDocument.Load(path2, LoadOptions.PreserveWhitespace)
Dim docgpx As XDocument = XDocument.Load(path1)
Dim nsVierge = docvierge.Root.GetDefaultNamespace
Dim symbolTag As XElement
symbolTag = docvierge.Root...<Symbol>.Single
Dim i As Integer
i = 0
For Each trkpt In docgpx.Root.Descendants(docgpx.Root.GetDefaultNamespace + "trkpt")
symbolTag.Add(<<%= nsVierge + "Coordinate" %>>
<<%= nsVierge + "latitude" %>><%= trkpt.@lat %></>
<<%= nsVierge + "longitude" %>><%= trkpt.@lon %></>
</>)
i = i + 1
Next
Dim title As XElement
title = docvierge.Root...<Title>.Single
title.SetValue(saisie)
docvierge.Save(path3) |
pour info la fin du sub ( mais elle ne change rien pour mon problème) j'ai essaye :calim2:
Code:
1 2 3 4 5 6
| File.WriteAllText(path3, File.ReadAllText(path3).Replace(vbCrLf, vbLf))
MsgBox("end")
MsgBox(i)
End Sub |
la structure de départ : "doc vierge" un peu raccourcie mias la structure y est...
Code:
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 27 28 29 30 31 32 33 34 35 36 37
| ?xml version="1.0" encoding="UTF-8"?>
<DMG_SITAC xmlns="http://www.eads.com/eplf">
<Title>TEMPLATE_1RHC</Title>
<EPLFVersion>2.3</EPLFVersion>
<CreationDate>2015-06-03T10:31:43.388+02:00</CreationDate>
<RevisionDate>2015-06-03T10:31:43.388+02:00</RevisionDate>
<ExpirationDate>2016-06-03T10:31:43.388+02:00</ExpirationDate>
<Author>ADMIN</Author>
<Comment></Comment>
<HelicopterType>NH_90</HelicopterType>
<Country>FRANCE</Country>
<EurogridVersion>201</EurogridVersion>
<ThematicClass>
<TC_Name>US1</TC_Name>
<TC_DMG1>true</TC_DMG1>
<TC_DMG2>true</TC_DMG2>
<Overlay>
<OvlName>WRK20</OvlName>
<OvlNumber>20</OvlNumber>
<OvlDMG1>false</OvlDMG1>
<OvlDMG2>false</OvlDMG2>
<SecLevel> </SecLevel>
<Symbol>
<ID_EuroGridSymbol>113</ID_EuroGridSymbol>
<Colour>3</Colour>
<LineType>2</LineType>
<CtrlFlag>0</CtrlFlag>
<CtrlFlag>0</CtrlFlag>
<Text></Text>
<Course>0</Course>
<Speed>0</Speed>
<ScaleMin>100</ScaleMin>
<ScaleMax>500</ScaleMax>
</Symbol>
</Overlay>
</ThematicClass>
</DMG_SITAC> |
et maintenant voici ce que j'obtient au niveau de la balise "symbol" (dans l'espace de code) et la est mon problème tout apparait sur une seule ligne!
alors que j'obtient : et malgré deux heures de recherche je sèche encore une fois erf...
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <Symbol>
<ID_EuroGridSymbol>113</ID_EuroGridSymbol>
<Colour>3</Colour>
<LineType>2</LineType>
<CtrlFlag>0</CtrlFlag>
<CtrlFlag>0</CtrlFlag>
<Text></Text>
<Course>0</Course>
<Speed>0</Speed>
<ScaleMin>100</ScaleMin>
<ScaleMax>500</ScaleMax>
<Coordinate><latitude>49.266857</latitude><longitude>5.657061</longitude></Coordinate><Coordinate><latitude>49.316164</latitude><longitude>5.647001</longitude></Coordinate> etc .. </Symbol> |
le tout sur une seule ligne..:aie:
alors que je souhaite (pour coller le plus possible au modèle de fichier qui "marche") avoir :
( les balises latitude et longitude ainsi que toutes les balises du document devant être en "texte" décalée de 4 espaces par rapport a coordinate ou les unes par rapport aux autres)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <Symbol>
<ID_EuroGridSymbol>113</ID_EuroGridSymbol>
<Colour>3</Colour>
<LineType>2</LineType>
<CtrlFlag>0</CtrlFlag>
<CtrlFlag>0</CtrlFlag>
<Text></Text>
<Course>0</Course>
<Speed>0</Speed>
<ScaleMin>100</ScaleMin>
<ScaleMax>500</ScaleMax>
<Coordinate>
<Latitude>..<Latitude>
<Longitude>..<Longitude>
<Coordinate>
</Symbol> |
merci a tous d'avance!!