![]() |
Re: XML-Tutorial
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, wenn ich das mache, kommt eine Fehlermeldung (Anhang).
So ist der Code mittlerweile:
Delphi-Quellcode:
Was hat diese Fehlermeldung zu bedeuten??
const
NAMEN: array[0..8] of string = ('name', 'format', 'ton', 'anzmedien', 'bildqualität', 'tonqualität', 'gesamt', 'verliehen', 'comment'); var movies : IXMLDOMNodeList; subnode: IXMLDomNode; i, j : Integer; begin ListView1.Items.Clear; ListView1.Items.BeginUpdate; movies:=xmlDoc.documentElement.selectNodes('movie'); for i:=0 to movies.length -1 do begin subnode:=movies.item[i].selectSingleNode('id'); ListView1.Items.Add; ListView1.Items[i].Caption:=SubNode.Text; with ListView1.Items[i].SubItems do begin for j:=0 to length(NAMEN) do begin subNode:=movies.item[i].selectSingleNode(NAMEN[j]); if subNode <> nil then Add(SubNode.text) else Add(''); end; end; end; ListView1.Items.EndUpdate; end; |
Re: XML-Tutorial
Hi,
mache mal aus
Delphi-Quellcode:
einfach
length(NAMEN)
Delphi-Quellcode:
Chris
length(NAMEN)-1
|
Re: XML-Tutorial
:firejump: DAS SIEHT SCHON BESSER AUS!!! :firejump:
DANKE!!! |
Re: XML-Tutorial
Hi,
das ist mir auch schon aufgefallen: NAMES ist ein reserviertes Wort. Tschau! |
Re: XML-Tutorial
Schön, dass dir das aufgefallen ist, aber das ist eigentlich schon seit mehreren Monaten bekannt. :roll:
Aber wollt ihr solche Probleme nicht mal in der passenden Sparte stellen? Hier geht´s um das Tutorial an sich. Wenn ihr Verbesserungs- u.ä. Vorschläge bzw. Wünsche habt, dann schreibt das hier rein. Aber eure Fragen zu XML-Problemen solltet ihr besser in der XML-Sparte stellen. |
Re: XML-Tutorial
Zitat:
Allerdings funktioniert es auf dem XP Rechner ohne Problem .. Es kann damit zusammenhängen, dass ich auch Office 2003 drauf habe. Auf der Arbeit ist es dann aber leider nicht mehr der fall .. Hier haben wir auch Office 2003 (BS ist Windows 2000). Das Programm schmiert mit einer Zugriffsverletzung ab .. Werde wohl auf die 4-er Version zurückkommen müssen .. |
Re: XML-Tutorial
Zitat:
Aber wenn Office 2003 wirklich XML 5 installiert, dann sollte das eigentlich auch auf deiner Arbeit der Fall sein. Es sei denn, Microsoft hat XML 5 nur in Verbindung mit XP oder höher vorgesehen. |
Re: XML-Tutorial
Zitat:
|
Re: XML-Tutorial
Hi,
Zitat:
![]() Also allzulange kann es jetzt nicht mehr dauern, da ja auch Ferien sind. :tongue: Chris PS: Ich entschuldige mich dafür, dass da noch einige Fehler drin sind, aber ich werde auf jedenfall bei der neuen Version der Doku genauer auf solche Kleinigkeiten achten. :oops: |
Re: XML-Tutorial
Zitat:
Beim Start der Anwendung gibt es weiterhin die Zugriffsverletzung. Habe leider nicht den Quellcode hier, sonst hätte ich debuggen können. Kann mir denn vielleicht doch einer sagen woran das liegt ? |
Re: XML-Tutorial
Hi,
wenn die Funktion DoesXMLExists keine Fehler macht, dann kann es eigentlich nur noch am eigentlich Abfragen der Nodes liegen. Ohne Debugger wirst du wohl nicht weitkommen. ;) Chris PS: Wenn es nicht um den Quellcode der Doku geht würde ich dich bitten einen neuen Beitrag in der XML-Sparte zu eröffnen. ;) Danke. |
Re: XML-Tutorial
hi,
*das thema mal wieder auffrisch* ich hab grad das tutorial durchgemacht und auf meine eigenen bedürfnisse angepasst. leider wird beim Aufrufen von UpdateList; nichts in meine ListBox geschrieben :( . das XML-Dokument wurde aber richtig geladen... hier mal meine UpdateList (heißt bei mir UpdateNews ;)):
Delphi-Quellcode:
ein brakpoint hat mir "gesagt", dass items.length genau 0 hat... aber in der XML sind mehr als 20 der <item> container drin (es handelt sich um ein RSS-Feed).
procedure TForm1.UpdateNews;
var items: IXMLDOMNodeList; subitem: IXMLDOMNode; i: integer; begin listbox1.Items.Clear; items := xmlDoc.documentElement.selectNodes('item'); for i:=0 to items.length - 1 do begin subItem := items.item[i].selectSingleNode('title'); listbox1.Items.Add(subItem.text); end; end; wisst ihr, warum der parser die items nicht einliest? Aenogym |
Re: XML-Tutorial
Hi,
ich vermute mal, dass der Aufbau der XML-Datei ein anderer ist, als du ihn dort beschrieben hast. Vielleicht kannst du einen kurzen(!) Ausschnit mal posten. Chris |
Re: XML-Tutorial
hier die datei mit 2 item-containern:
Code:
achja: beim laden der datei in den parser hab ich nochmal xmlDoc.Xml geprüft. die datei wird 100% richtig geladen. und am aufbau der datei sollte es eigemntlich nicht liegen....
<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/"> <channel> <title>heise online news</title> <link>http://www.heise.de/newsticker/</link> <description>Nachrichten aus der Welt des Computers</description> </channel> <item> <title>PHP in zwei neuen Versionen</title> <link>http://www.heise.de/newsticker/meldung/51468</link> </item> <item> <title>Intels setzt Aktion gegen "inside-Webseiten" fort</title> <link>http://www.heise.de/newsticker/meldung/51458</link> </item> </rdf:RDF> Aenogym |
Re: XML-Tutorial
Das wird wohl am Namespace liegen:
XML-Code:
Du hast zwei Namespaces. Der erste wird aber nur mit dem Präfix "rdf" benutzt, der zweite generell. Wenn du mal in der entsprechenden Sparte [dp="xml namespace"]gesucht[/dp] hättest, hättest du einen passenden Ansatz finden können. Hat
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/"> ![]() Und damit wäre ich wieder beim Thema: Wollt ihr solche Fragen nicht da diskutieren, wo sie auch hingehören? :roll: Das hier ist die Tutorials-Sektion. |
Re: XML-Tutorial
Zitat:
Vielen Dank Chilla P.S. Mein erster Post :) Lies schon einige Zeit hier im Forum mit. Hat mich schon sehr oft weitergebracht! |
Re: XML-Tutorial
Hi,
noch einer der vielen kleinen Fehler im Tutorial. Du musst das +1 in die letzte Klammer packen:
Code:
Chris
newSub.text:=IntToStr(MainForm.MovieList.items[MainForm.MovieList.Items.Count - 1].Caption [color=#ff0000]+1[/color]);
|
Re: XML-Tutorial
*gnarf* nur das wärs gewesen?
habe mich jetzt mit MO v 1.7 beschäftigt und wollte das Programm "auseinandernehmen" um es zu verstehen. Sprich: Teile in ein eigenes Projekt einfügen. Nun bekomme ich beim kompilieren bei
Delphi-Quellcode:
und
Hauptfenster.UpdateList;
Delphi-Quellcode:
den Fehler
UpdateList;
"Nicht genügend wirkliche Paramter." Ich habe aber die Prozedur "TMainframe.Updatelist" genau aus MO übernommen und das nötige (m.E.) angepasst. Kann mir jemand helfen? |
Re: XML-Tutorial
hmm ich will die anleitung auch gerne mal lesen aber egal welchen link ich benutze kann ich es nicht öffnen
kann mir mal einer den neuen link posten oder vielleicht per mail schicken ???? lg, Gigant |
Re: XML-Tutorial
Hallo Gigant,
im ![]() Greetz alcaeus |
Re: XML-Tutorial
will ich ja geht aber nicht :(
hmm aber ich wechsel mal den pc und schau mal ob das an pc liegt lach nun hab ich es hey hey man muss einfach mit der der rechten maustaste drauf und dann ziel speichern unter und es geht !!!! also falsche panik meine schuld war nur zublöd lg, Gigant |
Re: XML-Tutorial
Jein. ;)
Ich habe im ersten Beitrag gerade die aktuellste Version angehängt. Sorry, dass ich im Moment nicht daran weiterarbeite, aber ich komme dazu einfach nicht. Irgendwann wird es aber nochmal eine neue Version geben. ;) Chris |
Re: XML-Tutorial
jop danke ich habe die datei :)
nun hab ich wieder was zutun :) bis danne lg, Gigant02 |
Re: XML-Tutorial
Hi
hab keine Ahnung, ob das schon erwähnt wurde (bin auch zu faul alle 5 Seiten zu lesen :oops: ) aber mein Delphi meckert da immer. :mrgreen: (Seite 8 erster Quelltext)
Delphi-Quellcode:
do --> then
if not FileExists(fAppPath + DATABASE_FNAME) do begin
Zitat:
|
Re: XML-Tutorial
Wenn ich mri mal einen kleinen Einwurf erlauben dürfte :drunken:
Delphi-Quellcode:
Diese Zeile finde ich falsch
newSub.text:=IntToStr(MainForm.MovieList.items[MainForm.MovieList.Items.Count - 1].Caption +1);
Es muss heißen:
Delphi-Quellcode:
Da ein Caption der MovieList einen STRING zurückgibt.
newSub.text:=IntToStr(StrToInt(MainForm.MovieList.items[MainForm.MovieList.Items.Count - 1].Caption) +1);
Wollte das nur mal erwähnen weil ich es nirgends gelesen habe. Vielelicht bin ich aber auch nur blind :coder2: Ansonsten funktionierte es erst bei mir, als ich die SAVE Routine von xmlDoc ausführte. Das habe ich auch nirgends gelesen aber wie gesagt, vielleicht bin ich ja auch blind und habe es in meinem lerneifer überlesen :duck: Also bis dann :spin2: |
Re: XML-Tutorial
Hallo,
hab mir das Tutorial mal angeschaut und sieht auch alles ganz gut aus. Hab alles gemacht so wie es da stand. Hab hier mal einen AUszug aus meinem Quelltext, wo eine neue Adresse eingetragen werden soll:
Delphi-Quellcode:
Das Problem daran ist, dass die xml Datei einfach nicht erstellt wird, und wenn sie da ist, wird auch nix neues reingeschrieben. Auch bei der FUnktion zum AUslesen und anzeigen tut sich gar nichts.
adressbuch := CoDOMDocument40.Create;
adressbuch.setProperty('NewParser', true); if not FileExists('C:\adressbuch.xml') Then begin adressbuch.loadXML('<?xml version="1.0"?><adressbuch></adressbuch>'); end else adressbuch.load('C:\adressbuch.xml'); if adressbuch.parseError.errorCode <> 0 then MessageDlg('Die XML-Datei ist nicht korrekt!' + #13#10, mtError, [mbOK], 0); newAdress := adressbuch.createElement('Adresse'); // ein Element erstellen; siehe I newSub := adressbuch.createElement('rufnummer'); newSub.text:=x.Rufnummer; newAdress.appendChild(newSub); newSub := adressbuch.createElement('Name'); newSub.text:=x.Name; newAdress.appendChild(newSub); newSub := adressbuch.createElement('Adresse'); newSub.text:=x.Adresse; newAdress.appendChild(newSub); newSub := adressbuch.createElement('Stadt'); newSub.text:=x.Stadt; newAdress.appendChild(newSub); adressbuch.documentElement.appendChild(newAdress); Woran kann das liegen ? Fehlermeldungen kommen auch keine. Danke, Party-Pansen |
Re: XML-Tutorial
Falls die XML nicht existiert erstellst du sie ja garnicht. Du musst am Ende noch ein savexml angeben.
|
Re: XML-Tutorial
gibt es die Downloads noch ... denn wenn ich versuche drauf zuzugreifen ... gibts nur nen 404 ...
wäre net wenn die nochmal online gestellt werden können ... thx in advance |
Re: XML-Tutorial
|
Re: XML-Tutorial
ups ... muss ich überlesen bzw. übersehen haben ... danke für die schnelle Antwort ...
|
Re: XML-Tutorial
Ist das Tutorial im ersten Beitrag die aktuelle Version? Auf dem Denkbaltt steht als Datum: 2003-09-27.
|
Re: XML-Tutorial
Es dürfte die momentan einzige Version sein, die Chris hat. :stupid:
|
Re: XML-Tutorial
Ich wollte nur sichergehen, dass ich mit der aktuellen Fassung arbeite.
BTW: Das mit dem Toolbar Bitmap hat funktioniertr. Danke noch mal. |
Re: XML-Tutorial
Ich habe Festgestellt das ich das Turorial nicht in Turbo Delphi anweden kann,
Gibt es denn eines das mit der TXMLDocument komponente arbeitet ??? nur diese Komponente ist nicht wirklich gut und übersichtlich.... Habe eine Fest vorgegebene XML-Datei die von einer website exportiert wird. Diese daten möchte ich übernehmen. Nur selbst in den unter Kathegorien sind wieder meherere einträge. Beispiel :
XML-Code:
Abfragen mache ich momentan so :<tour> <nummer>123456</nummer> <tourstrecken> <tourstrecke> <abfahrt> <id>1</id> </abfahrt> <ankunft> <id>2</id> </ankunft> </tourstrecke> <tourstrecke> <abfahrt> <id>3</id> </abfahrt> <ankunft> <id>4</id> </ankunft> </tourstrecke> <tourstrecken> </tour> <tour> <nummer>2345678953445</nummer> <tourstrecken> <tourstrecke> <abfahrt> <id>4</id> </abfahrt> <ankunft> <id>3</id> </ankunft> </tourstrecke> <tourstrecke> <abfahrt> <id>2</id> </abfahrt> <ankunft> <id>1</id> </ankunft> </tourstrecke> <tourstrecken> </tour>
Delphi-Quellcode:
so und diese unterkathegorieren arten dann noch in mehr details aus. Wie kann ich mir eine Solche abfrage ersparen ??
if Tour.Nodename = 'tour' then
while Tour.ChildNodes.Count > a do begin Tourstrecke := Tour.get(a); if Tourstrecke.Nodename = 'Tourstrecke' then while TourStrecke.Childnodes.count > b do begin u.s.w. end; end; Im Tutorial habe ich gesehen gehabt das man da alle ChildNodes mit einem namen Selektieren kann. bsp :
Delphi-Quellcode:
oder so in der art.Tour.SelectNodes('tourstrecke'); Wie mache ich sowas unter Turbo delphi mit der TXMLDocument Komponente ??? Gruss Sascha |
Re: XML-Tutorial
Hallo,
du solltest dazu schreiben, ob du TB for Win32 oder .NET verwendest. Unter .NET gibt es einen sehr eleganten Lösungsweg. Serialisierung. Mit Hilfe des XMLSerializer brauchst du dich gar nicht direkt um das Laden oder Speichern kümmern. Du brauchst nur ein Object, das die Struktur der XML Datei wiederspiegelt. Dann bist du schon fast fertig. Wenn du also .NET verwendest, könntest du hier ein wenig nach Serialisieren etc. suchen. |
Re: XML-Tutorial
Nein Leider benutze ich nicht die NET version !!
sondern die win32 version !! wobei ich sowiso nicht weiss was der unterschied zwischen NET und normal ist.... oder welche vorteile ich habe wenn ich die NET version nehmen würde... Gruss Sascha |
Re: XML-Tutorial
Ich hatte vorher mit ThaXML gearbeitet, aber das hat so seine Probleme (z.B. kein "Encoding")...
Deshalb habe ich mir das Tut angeguckt, aber :P Ich finde nichts unter "Projekt" was mit "import" o.ä. anfängt :( PS: Ich arbeite mit Turbo Delphi... [edit]Ich war wohl nicht der erste: ![]() MSXML unter TurboDelphi[/edit] |
Re: XML-Tutorial
Hi,
Turbo Delphi erlaubt kein Importieren von Drittanbieter-Komponenten. Und das schließt Typbibliothek mit ein. Dank sakura gibt es aber eine ![]() Chris |
Re: XML-Tutorial
Zitat:
So... Ich habe nun das Problem, dass ich ständig die Meldung bekomme, dass MS XML 4.0 nicht installiert sei... [edit]Arg... Es lag an den Beschriebenen Fall: Zitat:
[edit]Wie ist das eigentlich mit dem Freigeben?[/edit] [edit]Und wie überprüfe ich, ob es den Eintrag gibt?[/edit] [edit]Kann es sein, dass der Name des eintrags genauso sein muss (Also wegen der Gross/Kleinschreibung)?[/edit] |
Re: XML-Tutorial
Habe da was herausgefunden.
Unter Turbo elphi musst du das nicht Importieren. Einfach anstadt
Delphi-Quellcode:
folgendes :
xmlDoc := CoComDocument40.create;
Delphi-Quellcode:
und in der uses anweisung einfach MSXML einfügen. und schon geht es auch mit dem !!
xmlDoc := CoComDocument.create;
habe so auch das Tutorial Programm Compilieren können. einfach überall die 40 wegmachen und schon geht das ! gruss Sascha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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