mikrocontroller.net

Forum: PC-Programmierung xml Childknoten zusammenfassen c#


Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
    <Kontakt>
      <Name Name="xxx,xxx" />
      <Telefon zu Hause="+01234567" />
      <Telefon Mobil="+1234567" />
      <Telefon Arbeit="+765432" />
      <Adresse Straße="asdf" Ort="asdf" PLZ="12345" />
      <Geburtstag Geburtstag="1980-07-09" />
    </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

Autor: Mark (Gast)
Datum:

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

Im bereich der TElefonnummern sieht es dann wie folgt aus



                if (line.Split(';')[0] == "TEL")
                {
                    myXmlTextWriter.WriteStartElement("Telefon");
                    if (line.Contains("TYPE=HOME"))
                    {
                        myXmlTextWriter.WriteAttributeString("zu Hause", line.Split(':')[1]);
                    }
                    if (line.Contains("TYPE=WORK"))
                    {
                        myXmlTextWriter.WriteAttributeString("Arbeit", line.Split(':')[1]);
                    }
                    if (line.Contains("TYPE=CELL"))
                    {
                        myXmlTextWriter.WriteAttributeString("Mobil", line.Split(':')[1]);
                    }
                    if (line.Contains("TYPE=Whatsapp"))
                    {
                        myXmlTextWriter.WriteAttributeString("Whatsapp", line.Split(':')[1]);
                    }
                    if (line.Contains("TYPE=China"))
                    {
                        myXmlTextWriter.WriteAttributeString("China", line.Split(':')[1]);
                    }
                    myXmlTextWriter.WriteEndElement(); // Telefon
                }

Autor: Tuxi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was, wenn jemand zwei Mobiltelefone/Nummern hat?

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hier:
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.