Gravity
Bekanntes Mitglied
Könnte mir jemand helfen?
Warum bekomme ich keine Bildschirmausgabe?
Das Programm hab ich mir aus Codefragmenten zusammen gefrickelt die einzeln funktionierten.
Das muss nur eine besch*** Kleinigkeit sein.
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace EA35
{
class BenutzungDOM
{
static void Main(string[] args)
{
XmlDocument xmlDoc = new XmlDocument();
string filename = "D:/3.1.xml";
xmlDoc.Load(filename);
XmlNode xel = xmlDoc.DocumentElement;
XmlNode firstaus = xmlDoc.DocumentElement.FirstChild;
XmlNode first = xmlDoc.DocumentElement.FirstChild;
//Iterieren bis der passender Knoten gefunden
while (first.NextSibling != null)
{
XmlNode next = first.NextSibling;
if (next.Name.ToString() == "Leistungsnachweis")
{
XmlElement lst2 =
xmlDoc.CreateElement("Leistungsnachweis");
XmlElement kurs2 = xmlDoc.CreateElement("Kurs");
kurs2.InnerText = "CWL";
XmlElement note2 = xmlDoc.CreateElement("Note");
note2.InnerText = "3";
XmlElement gesamtpunkte2 =
xmlDoc.CreateElement("Gesamtpunkte");
gesamtpunkte2.InnerText = "60";
XmlElement datum2 = xmlDoc.CreateElement("Datum");
datum2.InnerText = "02.02.02";
XmlElement anzahlVersuhe2 =
xmlDoc.CreateElement("AnzahlVersuhe");
anzahlVersuhe2.InnerText = "2";
//neuen Knoten Leistungsnachweise zusammmenbilden
lst2.AppendChild(kurs2);
lst2.AppendChild(note2);
lst2.AppendChild(gesamtpunkte2);
lst2.AppendChild(datum2);
lst2.AppendChild(anzahlVersuhe2);
//neuen Knoten Leistungsnachweise einfügen
xel.InsertAfter(lst2, first);
}
//Manipulieren des Knotens Kontodaten
if (next.Name.ToString() == "Kontodaten")
{
//Kinderknoten bilden
XmlElement kontonummer2 =
xmlDoc.CreateElement("Kontonummer");
kontonummer2.InnerText = "00000000001";
XmlElement bankleitzahl2 =
xmlDoc.CreateElement("Bankleitzahl");
bankleitzahl2.InnerText = "100100100";
//Kinderknoten einfügen
next.ReplaceChild(kontonummer2, next.FirstChild);
next.ReplaceChild(bankleitzahl2, next.LastChild);
}
first = next;
}
GetNodes(xel, 0);
Console.ReadLine();
xmlDoc.Save("d:/EA3.5neu.xml");
}
static void GetNodes(XmlNode node, int level)
{
switch (node.NodeType)
{
case XmlNodeType.Element:
Console.Write(new string(' ', level * 2));
Console.Write("<{0}", node.Name);
if (node.Attributes != null)
{
foreach (XmlAttribute attr in node.Attributes)
Console.Write(" {0}='{1}'", attr.Name, attr.Value);
}
Console.Write(">");
if (node.HasChildNodes)
foreach (XmlNode child in node.ChildNodes)
{
if (child.NodeType != XmlNodeType.Text)
Console.WriteLine();
GetNodes(child, level + 1);
}
break;
case XmlNodeType.Text:
Console.Write(node.Value);
break;
}
}
}
}
Warum bekomme ich keine Bildschirmausgabe?
Das Programm hab ich mir aus Codefragmenten zusammen gefrickelt die einzeln funktionierten.
Das muss nur eine besch*** Kleinigkeit sein.
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace EA35
{
class BenutzungDOM
{
static void Main(string[] args)
{
XmlDocument xmlDoc = new XmlDocument();
string filename = "D:/3.1.xml";
xmlDoc.Load(filename);
XmlNode xel = xmlDoc.DocumentElement;
XmlNode firstaus = xmlDoc.DocumentElement.FirstChild;
XmlNode first = xmlDoc.DocumentElement.FirstChild;
//Iterieren bis der passender Knoten gefunden
while (first.NextSibling != null)
{
XmlNode next = first.NextSibling;
if (next.Name.ToString() == "Leistungsnachweis")
{
XmlElement lst2 =
xmlDoc.CreateElement("Leistungsnachweis");
XmlElement kurs2 = xmlDoc.CreateElement("Kurs");
kurs2.InnerText = "CWL";
XmlElement note2 = xmlDoc.CreateElement("Note");
note2.InnerText = "3";
XmlElement gesamtpunkte2 =
xmlDoc.CreateElement("Gesamtpunkte");
gesamtpunkte2.InnerText = "60";
XmlElement datum2 = xmlDoc.CreateElement("Datum");
datum2.InnerText = "02.02.02";
XmlElement anzahlVersuhe2 =
xmlDoc.CreateElement("AnzahlVersuhe");
anzahlVersuhe2.InnerText = "2";
//neuen Knoten Leistungsnachweise zusammmenbilden
lst2.AppendChild(kurs2);
lst2.AppendChild(note2);
lst2.AppendChild(gesamtpunkte2);
lst2.AppendChild(datum2);
lst2.AppendChild(anzahlVersuhe2);
//neuen Knoten Leistungsnachweise einfügen
xel.InsertAfter(lst2, first);
}
//Manipulieren des Knotens Kontodaten
if (next.Name.ToString() == "Kontodaten")
{
//Kinderknoten bilden
XmlElement kontonummer2 =
xmlDoc.CreateElement("Kontonummer");
kontonummer2.InnerText = "00000000001";
XmlElement bankleitzahl2 =
xmlDoc.CreateElement("Bankleitzahl");
bankleitzahl2.InnerText = "100100100";
//Kinderknoten einfügen
next.ReplaceChild(kontonummer2, next.FirstChild);
next.ReplaceChild(bankleitzahl2, next.LastChild);
}
first = next;
}
GetNodes(xel, 0);
Console.ReadLine();
xmlDoc.Save("d:/EA3.5neu.xml");
}
static void GetNodes(XmlNode node, int level)
{
switch (node.NodeType)
{
case XmlNodeType.Element:
Console.Write(new string(' ', level * 2));
Console.Write("<{0}", node.Name);
if (node.Attributes != null)
{
foreach (XmlAttribute attr in node.Attributes)
Console.Write(" {0}='{1}'", attr.Name, attr.Value);
}
Console.Write(">");
if (node.HasChildNodes)
foreach (XmlNode child in node.ChildNodes)
{
if (child.NodeType != XmlNodeType.Text)
Console.WriteLine();
GetNodes(child, level + 1);
}
break;
case XmlNodeType.Text:
Console.Write(node.Value);
break;
}
}
}
}