AGB  ·  Datenschutz  ·  Impressum  







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

XML ungültige Zeigeroperation

Ein Thema von ratmalwer · begonnen am 5. Jun 2023 · letzter Beitrag vom 5. Jun 2023
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#4

AW: XML ungültige Zeigeroperation

  Alt 5. Jun 2023, 16:42
Erstmal, laß das XMLDoc.Active:= weg,
denn LoadFromXML erledigt es bereits. (nochmal setzen kann den Inhalt löschen, weil Interfacereferenzen und so, siehe nachfolgend)

dann XMLDoc: IXMLDocument; anstatt TXMLDocument,
denn sonst bleibt RefCount auf 0 und wird die letzte Node-Referenz gelöscht, ist alles weg.

Delphi-Quellcode:
  XMLDoc := TXMLDocument.Create(nil); // XMLDoc = TXMLDocument
  XMLDoc.LoadFromXML(CurrentTrackMetadata);
  ItemNode := xmlDoc.DocumentElement; // RecCount geht auf 1
  ItemNode := xmlDoc.DocumentElement; // vor dem Ausführen wird die Interfacevariable auf nil gesetzt (Platz für neue Zuweisung), das ganze xmlDoc verschwindet gleich mit und xmlDoc.Irgendwas knallt
  ...
bzw.
Delphi-Quellcode:
  XMLDoc := TXMLDocument.Create(nil); // XMLDoc = TXMLDocument
  XMLDoc.LoadFromXML(CurrentTrackMetadata);
  ItemNode := xmlDoc.DocumentElement; // RecCount geht ...
  ItemNode := ItemNode.ChildNodes[0]; // vor dem Ausführen wird ...
  ...


Delphi-Quellcode:
var
  ItemNode, Itemnode2: IXMLNode;
  XMLDoc: IXMLDocument; //TXMLDocument;
  i, j: Integer;
begin
  XMLDoc := TXMLDocument.Create(nil);
  XMLDoc.LoadFromXML(CurrentTrackMetadata);
  ItemNode := xmlDoc.DocumentElement; // DIDL-Lite
  ItemNode := ItemNode.ChildNodes[0]; // Item
  for I := 0 to ItemNode.ChildNodes.Count-1 do begin
    Itemnode2 := ItemNode.ChildNodes[i]; // dc:title usw.

    if (ItemNode2.GetNodeName = 'upnp:album') and (itemNode2.Text > '') then
      Playalbum := itemNode2.Text;
    if (ItemNode2.GetNodeName = 'upnp:artist') and (itemNode2.Text > '') then
      Playartist := itemNode2.Text;
  end;
  //XMLDoc := nil;
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Jun 2023 um 16:49 Uhr)
  Mit Zitat antworten Zitat
 


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 04:38 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