| Autor |
Nachricht |
Hotte
Mitglied
Benutzerprofil
Anmeldungsdatum: 03.06.2009
Beiträge: 38
|
Hotte Mitglied
14:09:00 09.02.2010 Titel: |
|
Zitieren |
Mensch ein großes Dankschön schon mal!
MfG
Hotte |
Zuletzt bearbeitet von Hotte am 09:01:56 10.02.2010, insgesamt 1-mal bearbeitet |
|
 |
Hotte
Mitglied
Benutzerprofil
Anmeldungsdatum: 03.06.2009
Beiträge: 38
|
Hotte Mitglied
14:36:46 09.02.2010 Titel: |
|
Zitieren |
Habe nochmal eine Frage:
Wie kann ich den Fehler abfangen wenn meine XML-Datei nicht die erforderliche Strucktur aufweißt die ich gerne hätte?
| C++/CLI: | // Erstellt eine Liste aller Knoten
xmlnodelist = xmlelement->SelectNodes("Filmliste/CXML_Struktur");
| |
| C++/CLI: | // Erstellt eine Liste aller Knoten
xmlnodelist = xmlelement->SelectNodes("Filmliste/CXML_Struktur");
| |
| C++/CLI: | // Erstellt eine Liste aller Knoten
xmlnodelist = xmlelement->SelectNodes("Filmliste/CXML_Struktur");
| |
MfG
Hotte |
Zuletzt bearbeitet von Hotte am 08:38:26 11.02.2010, insgesamt 2-mal bearbeitet |
|
 |
Hotte
Mitglied
Benutzerprofil
Anmeldungsdatum: 03.06.2009
Beiträge: 38
|
Hotte Mitglied
12:22:17 10.02.2010 Titel: |
Speichern |
Zitieren |
Nachdem ich so viel Hilfe erhalten habe, hoffe ich nun nochmal so viel Glück zu haben.
Ich habe jetzt die XML Datei eingelesen und in einem DataTable gespeichert.
1. Die habe ich bearbeitet und möchte nun dieses DataTable wieder speichern.
2. In das gleiche XML-File möchte ich zudem eine zweite DataTable speichern.
Nur habe ich im Moment mal wieder kein Plan wie das gehen soll, vielleicht kann mir ja jemand helfen?
Mein Versuch:
| C++/CLI: | XmlTextWriter^ writer = gcnew XmlTextWriter("Versuch2.xml", System::Text::Encoding::UTF8);
XmlWriterSettings^ setting = gcnew XmlWriterSettings();
setting->Indent = true;
writer->WriteString(dtFilmliste->Rows[0]["Filme"]); // Nicht korrekt!
| |
| C++/CLI: | XmlTextWriter^ writer = gcnew XmlTextWriter("Versuch2.xml", System::Text::Encoding::UTF8);
XmlWriterSettings^ setting = gcnew XmlWriterSettings();
setting->Indent = true;
writer->WriteString(dtFilmliste->Rows[0]["Filme"]); // Nicht korrekt!
| |
| C++/CLI: | XmlTextWriter^ writer = gcnew XmlTextWriter("Versuch2.xml", System::Text::Encoding::UTF8);
XmlWriterSettings^ setting = gcnew XmlWriterSettings();
setting->Indent = true;
writer->WriteString(dtFilmliste->Rows[0]["Filme"]); // Nicht korrekt!
| |
MfG
Hotte |
Zuletzt bearbeitet von Hotte am 12:23:39 10.02.2010, insgesamt 1-mal bearbeitet |
|
 |
theta
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 3649
|
theta Mitglied
13:21:39 10.02.2010 Titel: |
|
Zitieren |
Ich würde nicht über DataTable gehen. Du hast überhaupt keine Abstraktion. Da könntest Du gleich bei DOM bleiben.
Machs doch so:
1. XML File via DOM einlesen und in ein geeignetes Objekt Modell abbilden
2. Objekt Modell manipulieren (wobei indirekt der DOM Baum bearbeitet wird)
3. Objekt Modell via DOM wieder speichern.
Simon |
|
|
|
 |
Hotte
Mitglied
Benutzerprofil
Anmeldungsdatum: 03.06.2009
Beiträge: 38
|
Hotte Mitglied
13:35:28 10.02.2010 Titel: |
|
Zitieren |
Hallo theta!
Was meinst du mit Objekt Modell?
Ich wollte eigentlich eine Datanbank vermeiden.
MfG
Hotte |
|
|
|
 |
Hotte
Mitglied
Benutzerprofil
Anmeldungsdatum: 03.06.2009
Beiträge: 38
|
Hotte Mitglied
08:37:53 11.02.2010 Titel: |
|
Zitieren |
Brauche nochmal eure Hilfe. Möchte mein DOM nun erweitern, aber irgendwie scheitere ich. Ich möchte nun neben dem Film und den Filmtitel dazu die passende Filmlänge einfügen pro Datansatz.
| C++/CLI: | 1 2 3 4 5 6 7 8 9 10 | 1 2 3 4 5 6 7 8 9 10 | // Neuer Knoten erzeugen
XmlNode^ newelem = xmldoku->CreateNode(XmlNodeType::Element,"Filmlänge", nullptr );
//Neuer Wert des Knoten
newelem->InnerText = "200 min";
XmlElement^ root = xmldoku->DocumentElement;
//XmlNode^ newl = xmldoku->SelectSingleNode("text1/text()"); // ??
root->AppendChild(newelem); // Läuft fügt aber den Knoten am Ende ein
//root->InsertAfter(newelem, newl); //Läuft nicht
xmldoku->Save("Versuch4.xml");
| |
| C++/CLI: | 1 2 3 4 5 6 7 8 9 10 | // Neuer Knoten erzeugen
XmlNode^ newelem = xmldoku->CreateNode(XmlNodeType::Element,"Filmlänge", nullptr );
//Neuer Wert des Knoten
newelem->InnerText = "200 min";
XmlElement^ root = xmldoku->DocumentElement;
//XmlNode^ newl = xmldoku->SelectSingleNode("text1/text()"); // ??
root->AppendChild(newelem); // Läuft fügt aber den Knoten am Ende ein
//root->InsertAfter(newelem, newl); //Läuft nicht
xmldoku->Save("Versuch4.xml");
| |
| C++/CLI: | 1 2 3 4 5 6 7 8 9 10 | // Neuer Knoten erzeugen
XmlNode^ newelem = xmldoku->CreateNode(XmlNodeType::Element,"Filmlänge", nullptr );
//Neuer Wert des Knoten
newelem->InnerText = "200 min";
XmlElement^ root = xmldoku->DocumentElement;
//XmlNode^ newl = xmldoku->SelectSingleNode("text1/text()"); // ??
root->AppendChild(newelem); // Läuft fügt aber den Knoten am Ende ein
//root->InsertAfter(newelem, newl); //Läuft nicht
xmldoku->Save("Versuch4.xml");
| |
MfG
Hotte |
|
|
|
 |
theta
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 3649
|
theta Mitglied
10:24:31 11.02.2010 Titel: |
|
Zitieren |
|
 |
Hotte
Mitglied
Benutzerprofil
Anmeldungsdatum: 03.06.2009
Beiträge: 38
|
Hotte Mitglied
16:03:12 11.02.2010 Titel: |
|
Zitieren |
|
 |