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