xml Childknoten zusammenfassen c#

Gast #4689483
Lesenswert?

Hallo,
ich programmiere mir gerade ein Adressbuch.
Dazu habe ich zunächst alle meine Konatkte als VCard erstellt und in 
eine XML geschrieben. Das hat auch soweit ganz gut geklappt. Beim 
nächsten Schritt stehe ich allerdings auf dem schlauch.
Ein Kontakt ist wie folgt aufgebaut
1
    <Kontakt>
2
      <Name Name="xxx,xxx" />
3
      <Telefon zu Hause="+01234567" />
4
      <Telefon Mobil="+1234567" />
5
      <Telefon Arbeit="+765432" />
6
      <Adresse Straße="asdf" Ort="asdf" PLZ="12345" />
7
      <Geburtstag Geburtstag="1980-07-09" />
8
    </Kontakt>

Wie man sehen kann, ist für jedes Telefon ein eigener Knoten. Ist es 
möglich, diese in einem Knoten zusammenzufassen? Also das da hinterher 
steht

<Telefon zu Hause="+01234567" Mobil="+1234567" Arbeit="+765432" />


Mark
Gast #4689487
Lesenswert?

Ahso,
ich erstelle die xml wie folgt.
ich gehe die originaldatei durch und überprüfe jeweils, was am Anfang 
der ZEile steht
1
while ((line = vCard.ReadLine()) != 
2
{
3
...
4
}

Im bereich der TElefonnummern sieht es dann wie folgt aus


1
                if (line.Split(';')[0] == "TEL")
2
                {
3
                    myXmlTextWriter.WriteStartElement("Telefon");
4
                    if (line.Contains("TYPE=HOME"))
5
                    {
6
                        myXmlTextWriter.WriteAttributeString("zu Hause", line.Split(':')[1]);
7
                    }
8
                    if (line.Contains("TYPE=WORK"))
9
                    {
10
                        myXmlTextWriter.WriteAttributeString("Arbeit", line.Split(':')[1]);
11
                    }
12
                    if (line.Contains("TYPE=CELL"))
13
                    {
14
                        myXmlTextWriter.WriteAttributeString("Mobil", line.Split(':')[1]);
15
                    }
16
                    if (line.Contains("TYPE=Whatsapp"))
17
                    {
18
                        myXmlTextWriter.WriteAttributeString("Whatsapp", line.Split(':')[1]);
19
                    }
20
                    if (line.Contains("TYPE=China"))
21
                    {
22
                        myXmlTextWriter.WriteAttributeString("China", line.Split(':')[1]);
23
                    }
24
                    myXmlTextWriter.WriteEndElement(); // Telefon
25
                }
Gast #4692190
Lesenswert?

Das hier:
1
myXmlTextWriter.WriteAttributeString("zu Hause", line.Split(':')[1]);
sollte Dir eigentlich der XmlTextWriter um die Ohren hauen. Das ergibt 
ein ungültiges XML-Dokument! (Hint: Leerzeichem im Attributnamen)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren