Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

XMLAttribut auslesen

  Alt 11. Apr 2006, 09:08
Ich habe folgendes XML Dokument:
XML-Code:
<importkennungen>
  <Zeitraum jahr="2007">
    <Ziel kennung="11A13">(#BUNG07)\Lieferschein</Ziel>
    <Ziel kennung="11A15">(#BUNG07)\Rechnung</Ziel>
    <Ziel kennung="11A11">(#BUNG07)\Firma2\Lieferschein</Ziel>
  </Zeitraum>
  <Zeitraum jahr="2006">
    <Ziel kennung="11A13">(#BUNG06)\Lieferschein</Ziel>
    <Ziel kennung="11A15">(#BUNG06)\Rechnung</Ziel>
    <Ziel kennung="11A11">(#BUNG06)\Firma2\Lieferschein</Ziel>
  </Zeitraum>
  <Zeitraum jahr="2005">
    <Ziel kennung="11A13">(#BUNG05)\Lieferschein</Ziel>
    <Ziel kennung="11A15">(#BUNG05)\Rechnung</Ziel>
    <Ziel kennung="11A11">(#BUNG05)\Firma2\Lieferschein</Ziel>
  </Zeitraum>
  <Zeitraum jahr="2004">
    <Ziel kennung="11A13">(#BUNG04)\Lieferschein</Ziel>
    <Ziel kennung="11A15">(#BUNG04)\Rechnung</Ziel>
    <Ziel kennung="11A11">(#BUNG04)\Firma2\Lieferschein</Ziel>
  </Zeitraum>
</importkennungen>
Wie komme ich jetzt an die Attribute dran? Ich habe es so versucht ein Attribut auszuwählen:
Delphi-Quellcode:
function TConfigFile.GetIsYearConfigured(const Year: String): Boolean;
var
  DummyNode: IXMLDOMNode;
  Attr: IXMLAttribute;
begin
  result := False;
  DummyNode := FXmlDoc.selectSingleNode('\importkennungen\zeitraum');
  if DummyNode <> nil then
  begin
    Attr.name := 'jahr';
    result := Attr.value <> '';
  end;
end;
Aber da sagt mir, dass Attr.name readonly ist und ich keinen Wert zuweisen könnte. Aber wie kann ich ein Attribut jetzt auswählen und auslesen. Ein Knoten kann ja auch mehrere Attribute haben.

Ach so, un dich müsste dann och durch alle Knoten "Zeitraum" durch itterieren, um zu sehen, ob da das gesuchte Jahr vorkommt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat