Thema: Delphi Attribute auslesen

Einzelnen Beitrag anzeigen

krys2000

Registriert seit: 12. Feb 2006
15 Beiträge
 
#1

Attribute auslesen

  Alt 2. Apr 2008, 20:46
Hi Leute!

Ich möchte von dieser Datei id-prod und beschr auslesen.
Ich habe nur wenig Erfahrung mit Xml deshalb Bitte ich um ein Tip was mache ich hier falsch?.

Delphi-Quellcode:
<?xml version="1.0" encoding="UTF-8" ?>

<komunikat xmlns="www.bla.gov.pl/xml/zaehler/1" xmlns:kpz="www.bla.gov.pl/xml/zaehler/1"

wersja="2" nr-gen="1002" >

  <klient id="222222" />

 <abc:raport-weryf-ware id-klient="101149" vertrag="123456678654" jahr="2008" monat="02">

 <abc:raport-weryf id-prod="11794" wers="1" >
  <problem kat="B" kod="43" beschr="Fehler Beschreibeung_1" />
  </abc:raport-weryf>

 <abc:raport-weryf id-prod="11795" wers="1" >
  <problem kat="B" kod="44" beschr="Fehler Beschreibeung_2" />
  </abc:raport-weryf>

  <abc:raport-weryf id-prod="11796" wers="1" >
  <problem kat="B" kod="43" beschr="Fehler Beschreibeung_3" />
  </abc:raport-weryf>

 </abc:raport-weryf-ware>
  </komunikat>
Hier ist kein Problem

Delphi-Quellcode:
xmlDoc:=CoDOMDocument40.Create;
 xmlDoc.setProperty('NewParser', True);
 xmlDoc.setProperty('SelectionLanguage', 'XPath');
 xmlDoc.setProperty('SelectionNamespaces', 'xmlns:kpz="www.bla.gov.pl/xml/zaehler/1"');

 xmlDoc.load(Path + DATABASE_FNAME+'.xml');

   FeldName:='';
   FeldName:='abc:raport-weryf';
   nl := xmlDoc.documentElement.selectNodes('//'+FeldName);
   for i := 0 to Pred(nl.length) do
   begin
   
    FeldName:='';
    e := nl.item[i] as IXMLDOMElement;

       FeldName:='id-prod';
       FeldValue:=e.getAttribute(FeldName);
       if (not VarIsNull(FeldValue)) then
       Id_prod := FeldValue;

        FeldName:='wers';
       FeldValue:=e.getAttribute(FeldName);
       if (not VarIsNull(FeldValue)) then
       Version := FeldValue;
    end;
Aber hier zeigt mir jedes mal nl.length=0!

Delphi-Quellcode:
FeldName:='';
   FeldName:='problem';
   nl := xmlDoc.documentElement.selectNodes('//'+FeldName);
   for i := 0 to Pred(nl.length) do
   begin
   
    FeldName:='';
    e := nl.item[i] as IXMLDOMElement;

       FeldName:='kat';
       FeldValue:=e.getAttribute(FeldName);
       if (not VarIsNull(FeldValue)) then
       Kategorie := FeldValue;

        FeldName:='beschr';
       FeldValue:=e.getAttribute(FeldName);
       if (not VarIsNull(FeldValue)) then
       Beschreibung:= FeldValue;
    end;
Ich Bitte Euch hilft mir ich weiss nicht was ich mache soll!
Grüße
Krys
  Mit Zitat antworten Zitat