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 ) 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

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 : 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
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 : 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
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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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..

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 : 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
<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!!