Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XML mit C# (https://www.delphipraxis.net/65996-xml-mit-c.html)

Luckie 23. Mär 2006 14:29

Re: XML mit C#
 
Ups. Da kommt wieder meine C# Unerfahrenheit zum Vorschein. :oops:

Jetzt bekomme ich zwar den Namen: lblCurProject.Text = node.Name; aber mit node.Value keinen Wert.

Waldteufel 23. Mär 2006 14:35

Re: XML mit C#
 
Das ist nicht weiter verwunderlich. In der Hilfe steht zu XmlNode.Value:

XmlNode.Value
Eigenschaftenwert

Der zurückgegebene Wert hängt vom NodeType des Knotens ab:

Attribute: Der Wert des Attributs.

CDATASection: Der Inhalt des CDATA-Abschnitts.

Comment: Der Inhalt des Kommentars.

Document: NULL (Nothing in Visual Basic).

DocumentFragment: NULL (Nothing in Visual Basic).

DocumentType: NULL (Nothing in Visual Basic).

Element: NULL (Nothing in Visual Basic). Auf den Wert des Elementknotens kann über die XmlElement.InnerText-Eigenschaft oder die XmlElement.InnerXml-Eigenschaft zugegriffen werden.

Entity: NULL (Nothing in Visual Basic).

EntityReference: NULL (Nothing in Visual Basic).

Notation: NULL (Nothing in Visual Basic).

ProcessingInstruction: Der gesamte Inhalt mit Ausnahme des Zieles.

Text: Der Inhalt des Textknotens.

SignificantWhitespace: Die Leerraumzeichen. Leerraum kann aus einem oder mehreren Leerzeichen, Wagenrückläufen, Zeilenvorschüben und Tabstopps bestehen.

Whitespace: Die Leerraumzeichen. Leerraum kann aus einem oder mehreren Leerzeichen, Wagenrückläufen, Zeilenvorschüben und Tabstopps bestehen.

XmlDeclaration: Der Inhalt der Deklaration (d. h. alle Zeichen zwischen <?xml und ?>).


PS: Will heißen
Code:
XMlDocument xmlDoc = new XmlDocument();
XmlDocument.LoadXML(xmlstring);

XmlNode node = xmlDoc.SelectSingleNode("/xml/project/internername");
MessageBox.Show(node.InnerText);

merlin17 23. Mär 2006 14:42

Re: XML mit C#
 
Hallo Luckie,

als Lektüre zu XML kann ich dir das Buch "XML essential" von AddisonWesley empfehlen... (ISBN- 3-8273-1769-x, absolut genial, DAS XML-Buch in meinen Augen).

Willst Du über DOM oder SAX gehen ??!?!

In .net gibt es (meines Wissens) kein SAX um XML-Docs schnell und effektiv zu lesen, aber nicht wirklich schlimm...
probiere mal folgendes aus:
Delphi-Quellcode:
XMLReader xreader = XmlReader.Create("dp.xml");
while (xreader.ReadToFollowing("Knoten")
{
Console.WriteLine(xreader.ReadString());
}
xreader.Close();

:-) thomas

Luckie 23. Mär 2006 14:47

Re: XML mit C#
 
Wenn ich im Konstruktor auch einen String übergeben kann, dann wäre das eine alternative. Aber so klappt es auch schon prima.

MathiasSimmack 23. Mär 2006 14:56

Re: XML mit C#
 
Zitat:

Zitat von go7chib
Code:
// evtl. statt Slashes Backslashes, weiß es grad nicht, evtl. muss an den Anfang auch ein Slash

Slashes sind schon richtig, und an den Anfang müssen nur welche, wenn du quasi vom Root aus suchen willst. Wenn dein aktueller Knoten der Root selbst ist, spielt es keine Rolle, aber ich spare mir meist das Hantieren mit bestimmten Knoten, sondern ich greife gleich von ganz oben (quasi von meiner XmlDocument-Variablen) ab.

Luckie 29. Mär 2006 11:39

Re: XML mit C#
 
Eine letzte Frage zum Thema, dann haben wir es geschafft. Wie kann ich Attribute zu einem Element hinzufügen und wieder auslesen?
XML-Code:
XmlDocument xml = new XmlDocument();
XmlNode msg = xml.AppendChild(xml.CreateNode(XmlNodeType.Element, "message", ""));
XmlAttribute attr =
Irgendwie so habe ich es versucht.

Und wie kann ich kontrollieren, ob es geklappt hat? Stehen die Attribute dann auch in xml.InnerText:
Code:
Console.WriteLine(xml.InnerXml);

Luckie 29. Mär 2006 12:51

Re: XML mit C#
 
Neue Erkennsnis:
Code:
XmlDocument xml = new XmlDocument();
XmlNode msg = xml.AppendChild(xml.CreateNode(XmlNodeType.Element, "message", ""));
XmlAttribute attr = xml.CreateAttribute("from");
attr.InnerText = xmpp1.User;
Ist das so richtig? Denn mit...
Code:
Console.WriteLine(xml.InnerXml);
...wird es mir nicht mit ausgegeben.

sakura 29. Mär 2006 13:13

Re: XML mit C#
 
Du musst das Attribute auch noch der Node hinzufügen :zwinker:
Code:
msg.Attributes.Append(attr);
...:cat:...

Luckie 29. Mär 2006 13:18

Re: XML mit C#
 
Klingt sinnvoll. Das so was in der Art da irgendwie fehlt, hatte ich mir auf der Toilette auch gerade überlegt. ;)

MathiasSimmack 29. Mär 2006 20:54

Re: XML mit C#
 
Deine besten Ideen hast du auf diesem Örtchen, wie? :stupid: Es ist nicht das erste Mal, dass du die Toilette so speziell erwähnst. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz