AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Attribute in XML suchen und ausgeben...Wie?

Attribute in XML suchen und ausgeben...Wie?

Ein Thema von torud · begonnen am 12. Feb 2008 · letzter Beitrag vom 13. Feb 2008
 
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Attribute in XML suchen und ausgeben...Wie?

  Alt 12. Feb 2008, 15:29
Hallo Wissende,

ich weiss, es ist sicher einfach ohne Ende, aber ich parse folgenden XML-String seit Ewigkeiten mit ner String-Funktion und will davon nun weg, finde aber leider keinen Weg. Ich weiss schon, dass ich mir wahrscheinlich ein XML-Document erzeugen müsste und mich dann irgendwie durchhangeln muss.

So etwas in der Art erhalte ich:
<MatchStats id="MS004" matchid="ATP2008WG MS004" seq="118" msg="Return">

Bisher erhalte ich mit dieser Funktion den Inhalt aus den Attributen:
Delphi-Quellcode:
function GetAttributeValue(XMLContent,Attribute:String):String;
begin
   if pos(Attribute,XMLContent)<>0 then
     begin
       Delete(XMLContent,1,pos(Attribute,XMLContent)+length(Attribute)+1);
       if pos('"',XMLContent)<>0 then
         Delete(XMLContent,pos('"',XMLContent),length(XMLContent));
         Result:=XMLContent;
     end;
end;
Aufgerufen wird das bisher so:
ed_msg.Text := GetAttributeValue(XMLContent,'msg'); In dem Edit würde dan Return stehen.

Ich habe nun folgendes versucht, aber meine XML-Kenntnisse sind so Grotte, dass mich das nicht wirklich zum Ziel führt.

Delphi-Quellcode:
function GetXmlAttribute(XMLContent, str_Attr : String):String;
var
  MyXml : IXMLDOMDocument2;
  Attributes : IXMLDOMNodeList;
  i : integer;
begin
  MyXml := CoDOMDocument40.Create;
  MyXml.setProperty('NewParser', true);
  MyXml.loadXML(XMLContent);

  Attributes := MyXml.documentElement.selectNodes('MatchStats');
    for i:=0 to Attributes.length -1 do
      if Attributes.item[i].selectSingleNode(str_Attr).nodeName = str_Attr then
        Result := Attributes.item[i].selectSingleNode(str_Attr).text;
end;
Könnte mir bitte jemand unter die Arme greifen und einen Tipp geben. Ich will die andere Funktion ersetzen, damit ich nicht so viel im QuellCode ändern muss. Deshalb sollten die übergebenen Parameter auch so bleiben. Den Funktionsnamen kann ich später dann noch anpassen.
Danke
Tom
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:48 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