![]() |
Dann hol Dir schon einmal den MSXML 4.0 DOM von MS
![]() Damit kann ich Dir dann weiterhelfen. Ich mach mich gleich dran. :cat: |
Hast du vielleicht einen direkten Link? Finde die File nirgends!
Chris |
Dann musst Du noch Deine XML Datei korrigieren, da es nur ein oberstes Element geben darf.
Code:
:cat:
<?xml version="1.0"?>
<!DOCTYPE Smilies SYSTEM "smilies.dtd"> <OberstesElement> <smilies> <smiley>:-)</smiley> <bedeut>normales, froehliches Smiley</bedeut> </smilies> <smilies> <smiley>;-)</smiley> <bedeut>zwinkerndes Smiley</bedeut> </smilies> <smilies> <smiley>:-(</smiley> <bedeut>enttaeuscht, traurig</bedeut> </smilies> </OberstesElement> |
Das MSI Paket (auf der rechten Seite findest Du u.a. Installer German )
![]() Du brauchst noch MS Setup 2.x, den Link dorthin findest Du am Ende der Seite direkt vor Notices :cat: |
Hi Chris,
der direkte Link: ![]() MfG, d3g [EDIT]Sehr gleichzeitig. :mrgreen:[/EDIT] |
Nachdem Du den MSXML 4.0 erfolgreich :!: installiert hast, kannst Du Delphi neu starten und über Import Type Library für den Microsoft XML, v4.0 (Version 4.0) eine Unit erstellen lassen (Create Unit).
Diese Unit (MSXML2_TLB) nimmst Du dann in die uses Klausel Deines Forms auf. Anschließend sollte folgender Code funktionieren. (Ich haben ein StringGrid auf dem Form und ein Button). Die Datei heisst smiley.xml und liegt im gleichen Verzeichnis wie die EXE.
Code:
Wenn Du noch Fragen hast, dann immer her damit, ich arbeite den ganzen lieben, langen Tag mit dem MS XML DOM (und das seit über 2 Jahren).
procedure TForm1.BitBtn1Click(Sender: TObject);
var I: Integer; XMLDoc: IXMLDOMDocument2; Smiley, Bedeut: IXMLDOMNode; Smileys: IXMLDOMNodeList; begin // XML COM Interface laden XMLDoc := CoDOMDocument40.Create; XMLDoc.setProperty('NewParser', True); // XML Datei laden XMLDoc.load('smiley.xml'); // Fehler überprüfen if XMLDoc.parseError.errorCode <> 0 then begin ShowMessage('XML Fehler: '#13#10 + XMLDoc.parseError.reason); Exit; end; // alle smilies Nodes heranholen Smileys := XMLDoc.documentElement.selectNodes('smilies'); // stringgrid größe setzen StringGrid1.RowCount := Smileys.length; StringGrid1.ColCount := 2; StringGrid1.ColWidths[0] := 50; StringGrid1.ColWidths[1] := 300; StringGrid1.FixedCols := 0; StringGrid1.FixedRows := 0; // alle smileys laden for I := 0 to Pred(Smileys.length) do begin // nodes mit inhalt heranholen Smiley := Smileys.item[I].selectSingleNode('smiley'); Bedeut := Smileys.item[I].selectSingleNode('bedeut');; // texte ins grid bringen if Assigned(Smiley) then StringGrid1.Cells[0, I] := Smiley.text; if Assigned(Bedeut) then StringGrid1.Cells[1, I] := Bedeut.text; end; // optional, Delphi gibt interfaced COM Objekte automatisch frei ! Smileys := nil; Smiley := nil; Bedeut := nil; XMLDoc := nil; end; :cat: |
P.S. Wenn Du Smileys mit eckigen Klammern ala :-> nutzen willst, dann einfach mit dem HTML-Ersätzen einfügen
:-> mit :-> :-< mit :-< Umlaute sind komplizierter, da hier die Unicode Bedeutungen reinmüssen... Einfach einen guten XML Editor besorgen, der BEIDES kann - oder selbst schreiben :D :cat: |
DANKE!!!! Danke sakura!!! Es läuft, habe den Source aber einwenig geändert (Fixed rows = 1) und musste deswegen einiges +1 machen, aber DANKE! ((((sakura)))) :wink:
Chris1308 |
Ach so: mit Notepad (Editor) ist es etwas schwierig XML-Dateien zu machen, kennt jemand einen guten XML-Editor?
Chris |
ich würde gerne meinem delphi, auch version 5, xml beibringen allerdings finde ich keine option zum importieren ... wo steht das genau ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr. |
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