Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XMLAttribut auslesen (https://www.delphipraxis.net/67204-xmlattribut-auslesen.html)

martin-sun 11. Apr 2006 12:10

Re: XMLAttribut auslesen
 
Sorry. Mein Fehler. Du musst natürlich den Suchausdruck erst noch zusammensetzen.
suchString := '/importkennungen/Zeitraum['+IntToStr(i) +']/@jahr'

ach ja, das erste element hat auch den index 1 (und nicht 0)

Luckie 11. Apr 2006 12:13

Re: XMLAttribut auslesen
 
Nein, das kann auch keine Lösung sein. Aber so geht es:
Delphi-Quellcode:
function TConfigFile.GetIsYearConfigured: Boolean;
var
  ChildNodes: IXMLDOMNodeList;
  SubNode: IXMLDOMNode;
  i: Integer;
  s: String;
begin
  result := False;
  if FYear <> '' then
  begin
    ChildNodes := FXmlDoc.documentElement.selectNodes('zeitraum');
    for i := 0 to ChildNodes.length - 1 do
    begin
      SubNode := ChildNodes.item[i];
      s := SubNode.selectSingleNode('@jahr').nodeValue;
      ShowMessage(s);
    end;
  end
  else
    raise Exception.Create(rsNoYear);
end;
;)

ste_ett 11. Apr 2006 12:29

Re: XMLAttribut auslesen
 
Zitat:

Zitat von Luckie
Danke. Das sieht gut aus. Nur kennt er bei mir nicht ChildNodes.First und HasAttributes. Und das Attribut ansprechen mit XMLNode.Attributes['jahr'] geht auch nicht, da meint er:
Zitat:

[Pascal Error] ConfigCls.pas(68): E2010 Incompatible types: 'Integer' and 'string'
Das klappt also auch nicht.

Was für ein Klasse ist das FXMLDoc-Objekt?

Luckie 11. Apr 2006 12:42

Re: XMLAttribut auslesen
 
Delphi-Quellcode:
FXmlDoc: msDomDocument;
Importierte Typbibliothek ist die Version 3.0, um mit dem IE 5.0 kompatibel zu sein. Muss leider so sein, da unbedibngt sichergestekllt sein muss, dass sie auf dem Zielrechner existiert.

MathiasSimmack 11. Apr 2006 13:54

Re: XMLAttribut auslesen
 
Zitat:

Zitat von Luckie
Nein, das kann auch keine Lösung sein. Aber so geht es:

Oder so:
Delphi-Quellcode:
function TConfigFile.GetIsYearConfigured(year: string): boolean;
var
  node  : IXMLNode;
begin
  node  := FXmlDoc.selectSingleNode(
    Format('/importkennungen/Zeitraum[@jahr="%s"]', [year]));
  Result := node <> nil;
end;
:stupid:

Luckie 11. Apr 2006 13:57

Re: XMLAttribut auslesen
 
Hmpf. Ich wusste das du mit so einer Streberlösung daher kommen würdest. Bekommst du das auch für die Kennung hin? ;)

MathiasSimmack 11. Apr 2006 14:01

Re: XMLAttribut auslesen
 
Ist doch im Prinzip das gleiche. :zwinker: Du musst es nur kombinieren. Der XPath-Ausdruck:
Code:
/importkennungen/Zeitraum[@jahr="2007"]/Ziel[@kennung="11A15"]
würde als Ergebnis den Knoten
XML-Code:
<Ziel kennung="11A15">(#BUNG07)\Rechnung</Ziel>
aus deiner Datei liefern. Anstelle der festen Angaben setzt du eben nur die Platzhalter rein.

Luckie 11. Apr 2006 14:04

Re: XMLAttribut auslesen
 
Zitat:

Zitat von MathiasSimmack
Ist doch im Prinzip das gleiche. :zwinker: Du musst es nur kombinieren.

Jupp, ich habe es ja auch schon, wollte dich nur etwas ärgern. ;)

MathiasSimmack 11. Apr 2006 14:05

Re: XMLAttribut auslesen
 
Ich sage doch, so schwer ist XML gar nicht. Das kapierst du, auch ohne zum Klo zu rennen. :mrgreen:

Luckie 11. Apr 2006 14:08

Re: XMLAttribut auslesen
 
Zitat:

Zitat von MathiasSimmack
Das kapierst du, auch ohne zum Klo zu rennen. :mrgreen:

Du erinnerst mich gerade an etwas, ich muss mal wohin.


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

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