Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML visualisieren / und ich seh kein Land (https://www.delphipraxis.net/112145-xml-visualisieren-und-ich-seh-kein-land.html)

Cosamia 15. Apr 2008 18:44


XML visualisieren / und ich seh kein Land
 
Hallo,

ich habe in einem anderen Thread schon mein Kummer mit dem ClientDataSet geäußert. Es funktioniert einfach nicht.

Aber evtl. verfolge ich auch den falschen Ansatz.

Ich muss den Inhalt dynamischer XML Files mit Delphi geordnet zu Papier (ausdrucken) bringen.

Am liebsten wäre es mit hinterher mit Rave.

Jemand ein Ansatz für mich?

Gibt OLEDB Traiber für XML?

Larsi 15. Apr 2008 19:45

Re: XML visualisieren / und ich seh kein Land
 
TXMLDocument vielleicht?

Helld_River 17. Apr 2008 12:54

Re: XML visualisieren / und ich seh kein Land
 
Hi,

definiere bitte erst mal: "dynamische XML Files"

Heißt das, dass sich die Struktur oder der Inhalt des XML-Dokumentes ändert ?

Gruß, Helld

Cosamia 2. Mai 2008 14:59

Re: XML visualisieren / und ich seh kein Land
 
Sorry, das ich mich solange nicht auf gemeldet habe. Hatte völlig vergessen, dass ich nicht geantwortet habe.

Das Problem bleibt das selbige.

Ich habe eine XML Datei, welchen Aufbau ich kenne. Ziel ist es nun alle Attribute dieser Datei auszulesen.
Wenn ich das Attribut angebe, dann funtioniert das auch mittlerweile (siehe Code ['selectedValue']).

Aber ich würde gerne alle Werte in einer Listbox anzeigen, die sich in der Datei befinden.

Gruss

Delphi-Quellcode:
procedure TForm1.erweitereBaum(node : IXMLNode;knoten : TTreeNode);
  var
    nodes     : IXMLNodeList;
    kindknoten : TTreeNode;
    i         : integer;
    tempStr   :String;
    orvalue   :String;
   

  begin
    if node.HasChildNodes then
    begin
      nodes := node.ChildNodes;
      for i := 0 to nodes.Count - 1 do
      begin
        case nodes[i].NodeType of
          ntElement  : begin
                          TempStr := '';
                          if nodes[i].HasAttribute('selectedValue') then
                            begin
                              tempStr:= nodes[i].Attributes['selectedValue'];
                            end;
                          kindknoten := tvBaum.Items.AddChild(knoten,'<'+nodes[i].NodeName+'>'+Tempstr);

                          //orvalue := nodes[i].Attributes[Attributnamen]; {Wie komme ich an den Attributnamen}
                          content.Items.Add (orvalue); {Strinlist}
                          orvalue := '';
                          end;
                        end;
          ntText     : kindknoten := tvBaum.Items.AddChild(knoten,nodes[i].text);
        end; // of case
        erweitereBaum(nodes[i],kindknoten);
      end;
    end;
  end;

marabu 2. Mai 2008 17:18

Re: XML visualisieren / und ich seh kein Land
 
Hallo,

nimm statt Attributes die Eigenschaft AttributeNodes, wenn du den Attributnamen brauchst:

Delphi-Quellcode:
var
  nlAttr: IXMLNodeList;
  xnAttr: IXMLNode;
  iAttr: Integer;
  // ...
begin
  // ...
  //orvalue := nodes[i].Attributes[Attributnamen]; {Wie komme ich an den Attributnamen}
  nlAttr := nodes[i].AttributeNodes;
  for iAttr := 0 to Pred(nlAttr.Count) do
  begin
    xnAttr := nlAttr[iAttr];
    content.Items.Add(xnAttr.NodeValue);
    // ShowMessage(xnAttr.NodeName); // attribute name
  end;
  // ...
Getippt und nicht getestet.

Grüße vom marabu

Cosamia 5. Mai 2008 07:33

Re: XML visualisieren / und ich seh kein Land
 
funktioniert. Super. Danke :thumb:

merlin17 16. Mai 2008 16:32

Re: XML visualisieren / und ich seh kein Land
 
siehe den Thread ; ich werde nächste Woche hier ein paar CodeSchnipsel einfügen, evtl. für Dein Projekt auch interessant...


:-) thomas, TeamNevrona


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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