![]() |
Nodes werden nicht selektiert
Hi,
meine XML-Datei sieht folgendermaßen aus:
Code:
Das Problem ist nun, das bei folgendem Source die Nodes nicht ausgewählt werden, sondern bei der gekennzeichneten Zeile eine Access Violation kommt:
<?xml version="1.0"?>
<language> <translator> <name>Christopher Harms</name> <website>http://www.csd-software.net</website> <date>2003-09-18</date> </translator> <form name="MainForm" /> <form name="EditingForm" /> <form name="AddingForm" /> <control name="mmFile" form="MainForm"> <caption>Datei</caption> </control> <control name="mmGrouping" form="MainForm"> <caption>In Gruppen einteilen (XP only)</caption> </control> </language>
Delphi-Quellcode:
Was habe ich falshc gemacht? :|
procedure TMainForm.UpdateLanguage;
var aLngDoc: IXMLDOMDocument2; aForms: IXMLDOMNodeList; slForms: TStringList; sXSL: string; i: integer; begin if not fileExists(fLangPath + fLanguage + '.lng') then begin ShowMessage('Die Sprachdatei konnte nicht gefunden.' + #13#10 + 'Es wird die Sprachvorgabe verwendet.'); end; aLngDoc := CoDOMDocument40.Create; slForms := TStringList.Create; try aLngDoc.load(fLangPath + fLanguage + '.lng'); sXSL := 'form'; {<-- gekennzeichnete Zeile ;-)} aForms := aLngDoc.documentElement.selectNodes(sXSL); for i:=0 to aForms.length - 1 do begin slForms.Add(aForms.item[i].attributes.getNamedItem('name').text); ShowMessage(aForms.item[i].attributes.getNamedItem('name').text); end; finally slForms.Free; end; end; Chris |
Re: Nodes werden nicht selektiert
Zitat:
1. Ich vermisse ein exit in dem Teil, in dem die Sprachdatei nicht gefunden wurde. Mit anderen Worten: egal ob die Datei existiert oder nicht, geladen wird sie trotzdem. :) 2. Warum so umständlich? An die Werte der Attribute kommst du einfach mit
Delphi-Quellcode:
Voilà.
aForms := aLngDoc.documentElement.selectNodes('form/@name');
if(aForms.length > 0) then for i := 0 to aForms.length - 1 do ShowMessage(aForms.item[i].Get_nodeValue); 3. Finde ich die Aufteilung ... hm, na sagen wir mal: umständlich. Warum ordnest du die Captions nicht gleich unter den Forms an, für die sie interessant sind? Was soll das:
Code:
Warum nicht bspw. einfach
<form name="[b]MainForm[/b]" />
<control name="mmFile" form="[b]MainForm[/b]"> <caption>Datei</caption> </control>
Code:
<form name="MainForm">
<control name="mmFile"> <caption>Datei</caption> </control> </form> |
Re: Nodes werden nicht selektiert
Hi Mathias,
danke für deine Hilfe. Leider schon etwas spät. Werde mir das morgen Nachmittag allerdings direkt ansehen. Auf den Ersten Blick sehe ich aber schon, dass das vermutlich funktionieren kann. :roll: Chris |
Re: Nodes werden nicht selektiert
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz