AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML mit C#

Ein Thema von Luckie · begonnen am 23. Mär 2006 · letzter Beitrag vom 29. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

XML mit C#

  Alt 23. Mär 2006, 10:44
Hallo, ich muss ein XML Dokument mit C# zusammenbauen. Dieses Dokument wird aber nicht als Datei gespeichert, sondern dann als Text verschickt.

Ich habe mich hier und im Internet schon umgesehen, aber ich weiß nicht, wie ich:
  • Ein XML Dokument erstelle
  • Einen Knoten hinzufüge
  • In ein Tag etwas hineinschreibe
  • Und wie ich dann an den gesamten Text drankomme

Beispiel:
XML-Code:
<xml>
  <projekt>
    <interner_name>SuperduperSoftware</interner_name>
    <beschreibung>geiles Teil</beschreibung>
    <status>fast fertig</status>
  </projekt>
</xml>
PS: Gibt es irgendwo ein gutes Tutorial zu diesem Thema (XML und C#)? Da bin ich mit Mr. Google nämlich auch nicht richtig fündig geworden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: XML mit C#

  Alt 23. Mär 2006, 10:50
Hi, auf Geloleocomputing steht dazu folgendes:

Zitat:
31.5 XML-Verwendung in C#

Obwohl C# die XML-Dokumentation unterstützt (siehe Kapitel 31, C# im Detail, Abschnitt »XML-Dokumentation«), bietet C# keine Sprachunterstützung für die Verwendung von XML.

Das ist aber okay, denn die Common Language Runtime bietet umfangreiche XML-Unterstützung. In diesem Themenbereich sind besonders die Namespaces System.Data.Xml und System.Xml von Interesse.
Vielleicht hilft dir das ein wenig. Wenn nicht, sorry.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: XML mit C#

  Alt 23. Mär 2006, 10:55
Einfach mal so...
Code:
using System.Xml;
...
   XmlDocument xml = new XmlDocument();
   XmlNode root = xml.AppendChild(xml.CreateNode(XmlNodeType.Element, "xml", ""));
   XmlNode project = root.AppendChild(xml.CreateNode(XmlNodeType.Element, "project", ""));
   project.AppendChild(xml.CreateNode(XmlNodeType.Element, "interner_name", "")).InnerText = "SuperduperSoftware";
   project.AppendChild(xml.CreateNode(XmlNodeType.Element, "beschreibung", "")).InnerText = "geiles Teil";
   project.AppendChild(xml.CreateNode(XmlNodeType.Element, "status", "")).InnerText = "fast fertig";

   textBox1.Text = xml.InnerXml;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: XML mit C#

  Alt 23. Mär 2006, 11:02
@matze: Jupp. Mit dem Namespace habe ich ja schon rumprobiert.

@leidensgenosse: Danke. Sieht gut aus.

So, da ich das Thema ja etwas allgemein gehalten habe, kann ich hier gleich weiter machen.

Jetzt bräuchte ich den umgekehrten Weg. Also das XML Dokument (Beispiel siehe oben)= liegt mir als String vor. Wie komme ich jetzt wieder an die darin enthaltenen Informationen dran. Ich habe da was von XPath gehört. Man gibt also den Pfad zu dem Knoten irgendwie an und kann dann direkt die Informationen auslesen. Habe ich das richtig verstanden? Und wie würde das jetzt konkret aussehen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: XML mit C#

  Alt 23. Mär 2006, 13:43
Ich habe mal versucht mich vorsichtig ranzutasten:
Code:
            try
            {
                XmlTextReader xmltr = new XmlTextReader(s);
                xmltr.Read();                            
                lblCurProject.Text = xmltr.Name;
                xmltr.Close();
            }
            catch (System.Xml.XmlException xmle)
            {
                MessageBox.Show(xmle.Message);
            }
Aber ich bekomme jedesmal eine Exception, obwohl ich dachte, dass ich es ganuso mache wie in dem Beispiel aus der Hilfe.

Und zwar fliegt es mir hier: XmlTextReader xmltr = new XmlTextReader(s); schon um die Ohren. In s steht aber genau das drinne, was ich weiteroben zusammengebastelt habe:
Zitat:
<xml><project><internername>SuperduperSoftware</internername><beschreibung>geiles Teil</beschreibung><status>fast fertig</status></project></xml>
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
go7chib

Registriert seit: 24. Jan 2006
5 Beiträge
 
#6

Re: XML mit C#

  Alt 23. Mär 2006, 14:11
Also den XmlReader mag ich nicht und nutz ich nicht.
Ich mach das immer so:
Code:
XMlDocument xmlDoc=new XmlDocument();
XmlDocument.LoadXML(xmlstring);

XmlNode node = new xmlNode();
node=xmlDoc.SelectSingleNode("xml/project/internername"); // evtl. statt Slashes Backslashes, weiß es grad nicht, evtl. muss an den Anfang auch ein Slash
MessageBox.Show(node.Text);
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: XML mit C#

  Alt 23. Mär 2006, 14:20
Hm, das sieht doch schon mal schön aus. Nur sagt er mir hier:
Code:
XmlNode node = new XmlNode();
Zitat:
Es konnte keine Instanz der abstrakten Klasse oder Schnittstelle "System.Xml.XmlNode" erstellt werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
go7chib

Registriert seit: 24. Jan 2006
5 Beiträge
 
#8

Re: XML mit C#

  Alt 23. Mär 2006, 14:22
ups... XmlNode node
reicht aus, es muss nicht extrta eine Objektinstanzt erzeugt werden, is mir grad eingefallen...
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#9

Re: XML mit C#

  Alt 23. Mär 2006, 14:24
Also bei mir gibt's kein XmlNode.Text...

Edit: .NET Framework 2
  Mit Zitat antworten Zitat
go7chib

Registriert seit: 24. Jan 2006
5 Beiträge
 
#10

Re: XML mit C#

  Alt 23. Mär 2006, 14:27
Stimmt.. hab das grad aus'm Kopf geschrieben... hab nachgeguckt, heißt
node.InnerText
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz