AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einen Wert aus XML auslesen

Ein Thema von Urmel · begonnen am 6. Okt 2004 · letzter Beitrag vom 7. Okt 2004
Antwort Antwort
Urmel

Registriert seit: 23. Mai 2004
Ort: Titiwu
28 Beiträge
 
#1

Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 10:16
Hallo,

ich habe heute zum ersten mal eine XML-Datei vor mir und muss dort einen bestimten Wert auslesen.
Aber irgendwie blicke ich das XML Zeugs noch nicht
Ich muss aus dieser Datei:
Code:
<Net_x0020_Display_x0020_Systems_x0020_Runtime_x0020_Settings_x0020_file>
  <xs:schema id="Net_x0020_Display_x0020_Systems_x0020_Runtime_x0020_Settings_x0020_file" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="Net_x0020_Display_x0020_Systems_x0020_Runtime_x0020_Settings_x0020_file" msdata:IsDataSet="true" msdata:Locale="de-DE">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="PADSRuntime" msdata:CaseSensitive="False">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="MonitorStatus" type="xs:string" minOccurs="0" />
                <xs:element name="KeepAliveTime" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <PADSRuntime>
    <MonitorStatus>OFF</MonitorStatus>
    <KeepAliveTime>10.06.2004 09:55:31</KeepAliveTime>
  </PADSRuntime>
</Net_x0020_Display_x0020_Systems_x0020_Runtime_x0020_Settings_x0020_file>
Denn MonitorStatus auslesen. Wer kann mir denn einen Denkanstoss geben?

Danke
Urmel aus dem Eis
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 10:18
Hallo Urmel,

vielleicht hilft dir [user=Chakotay1308]Chris'[/user] XML-Tutorial weiter.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Urmel

Registriert seit: 23. Mai 2004
Ort: Titiwu
28 Beiträge
 
#3

Re: Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 10:21
Zitat von alcaeus:
..vielleicht hilft dir [user=Chakotay1308]Chris'[/user] XML-Tutorial weiter...
Hallo alcaeus,

das habe ich schon gelesen. Aber irgendwie ist heute nicht mein Tag
Ich peile es einfach nicht
Urmel aus dem Eis
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 10:30
Schau mal ins erwähnte Tutorial unter dem Stichwort XPath. Dein Pfad müsste, wenn ich mich jetzt nicht arg verguckt habe
Code:
Net_x0020_Display_x0020_Systems_x0020_Runtime_x0020_Settings_x0020_file/PADSRuntime/MonitorStatus
lauten. Stichwort: "selectSingleNode", bzw. "selectNodes", usw.
  Mit Zitat antworten Zitat
Urmel

Registriert seit: 23. Mai 2004
Ort: Titiwu
28 Beiträge
 
#5

Re: Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 10:56
So, ich habe es geschaft! Danke euch beiden.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  xmlfile: string;
  Viewer: IXMLDOMNodeList;
begin
  xmlFile := 'PADSRuntime.xml';
  xmlDoc := CoDOMDocument40.Create;
  xmlDoc.setProperty('NewParser', true);
  if not FileExists(fAppPath + xmlFile) then
  begin
    ShowMessage('XML-Datei nicht gefunden');
  end
  else
  begin
    xmlDoc.load(fAppPath + xmlFile);
  end;
  if xmlDoc.parseError.errorCode <> 0 then
  begin
    MessageDlg('Die XML-Datei ist nicht korrekt!' + #13#10
      + 'Das Programm wird nun beendet.', mtError, [mbOK], 0);
    Application.Terminate;
  end;
  viewer := xmlDoc.documentElement.selectNodes('PADSRuntime/MonitorStatus');
  Label1.Caption := viewer.item[0].text; // Monitorstatus im Label anzeigen
end;
Ich hoffe das ist XML-Technich richtig?
Urmel aus dem Eis
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 13:56
Ich weiß nicht, was das hier
Zitat von Urmel:
xmlDoc.setProperty('NewParser', true);
immer soll. Das ist jetzt nicht gegen dich, @Urmel, sondern allgemein. Man kann es auch weglassen. Ich müsste erst im PSDK bzw. XML-SDK nachschlagen, wozu man diese Eigenschaft eigentlich braucht. Aber in irgendeiner Situation (DTD? ) gab es Probleme damit. Abgesehen davon hätte ich es so gelöst:
Delphi-Quellcode:
  if not FileExists(fAppPath + xmlFile) then
  begin
    ShowMessage('XML-Datei nicht gefunden');
    exit;
  end;

  xmlFile := 'PADSRuntime.xml';
  xmlDoc := CoDOMDocument40.Create;
  if(xmlDoc <> nil) then
  try
    xmlDoc.load(fAppPath + xmlFile);
    if xmlDoc.parseError.errorCode <> 0 then
    begin
      MessageDlg('Die XML-Datei ist nicht korrekt!' + #13#10
        + 'Das Programm wird nun beendet.', mtError, [mbOK], 0);
      Application.Terminate;
    end;

    viewer := xmlDoc.documentElement.selectNodes('PADSRuntime/MonitorStatus');
    if(viewer <> nil) then
      Label1.Caption := viewer.item[0].text; // Monitorstatus im Label anzeigen
  finally
    xmlDoc := nil;
  end;
  Mit Zitat antworten Zitat
Urmel

Registriert seit: 23. Mai 2004
Ort: Titiwu
28 Beiträge
 
#7

Re: Einen Wert aus XML auslesen

  Alt 6. Okt 2004, 14:06
Zitat von MathiasSimmack:
...Das ist jetzt nicht gegen dich, @Urmel...
hihi.... In wirklichkeit möchtest Du mich doch nur wieder in mein Ei stecken oder in Was "Mupfel".

Ne, im Ernst: Ich bin ja für jeden Hinweiss dankbar umd dieses XML endlich zu verstehen.
Urmel aus dem Eis
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: Einen Wert aus XML auslesen

  Alt 7. Okt 2004, 06:45
Nein! Ich hab´s auch in Chakotays MovieOrganizer (Demo und Tutorial) gesehen. In dem Fall gab es keine Probleme, aber in irgendeinem anderen Fall schon. Und irgendwo (entweder hat der Parser selbst gemeckert, oder es steht in der Hilfe zu MS-XML) ist es sogar nicht erlaubt, weil du sonst Schwierigkeiten hast.

Ich gucke noch mal nach. Aber das wird erst Nachmittag.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:44 Uhr.
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