AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

IXMLDomDocument vs. IXMLDocument

Ein Thema von creehawk · begonnen am 12. Nov 2018 · letzter Beitrag vom 29. Mai 2020
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#1

AW: IXMLDomDocument vs. IXMLDocument

  Alt 29. Apr 2020, 08:45
Schade, daß es hierzu keine Antwort gibt. Ich stehe vor einer ähnlichen Frage. Ich habe ein XML, daß ich leidlich gut mit IXMLDOMDocument durchsuchen kann, mit IXMLDocument ist das nicht so einfach... Aber IXMLDOMDocument ist nicht Plattformübergreifend, vermute ich mal ganz frech. Hat dieses Jahr jemand Muße zu antworten?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#2

AW: IXMLDomDocument vs. IXMLDocument

  Alt 29. Apr 2020, 08:54
Kannst du nicht folgendes dafür nutzen: http://docwiki.embarcadero.com/Libra...f.IXMLNodeList
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#3

AW: IXMLDomDocument vs. IXMLDocument

  Alt 4. Mai 2020, 09:20
Ja, könnte ich wohl, aber es ist unglaublich holprig in der Anwendung. Es gibt zB kein SelectSingleNode. Von XMLDOM kommend fällt mir grad gar nicht ein, wie ich durch so einen Teilbaum manövriere, ohne mir die Ohren zu brechen:
Code:
 <OBX>
   <OBX.3>SpO2</OBX.3>
   <OBX.5>96</OBX.5>
   <OBX.6>%</OBX.6>
   <OBX.7>90-100</OBX.7>
   <OBX.14>20200416141051</OBX.14>
 </OBX>
 <OBX>
   <OBX.3>PR</OBX.3>
   <OBX.5>65</OBX.5>
   <OBX.6>BPM</OBX.6>
   <OBX.7>50-130</OBX.7>
   <OBX.14>20200416141051</OBX.14>
 </OBX>
Hätte nicht gedacht, daß Microsoft uns Entwickler so verwöhnt.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: IXMLDomDocument vs. IXMLDocument

  Alt 4. Mai 2020, 12:12
Von XMLDOM kommend ...
XPath?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#5

AW: IXMLDomDocument vs. IXMLDocument

  Alt 5. Mai 2020, 09:18
Ich glaube ich habe mich missverständlich ausgedrückt. Ich verwende derzeit IXMLDOMDocument und was so dazugehört. Ich möchte umstellen auf das plattformunabhängige IXMLDocument. Xpath ist wohl eher etwas was zu IXMLDOMDocument gehört? Zu einem XML mit allerlei für mich irrelevanten Tags außer allem was unter den mehrfachen <OBX> zu finden ist, hatte ich bisher eine Lösung nach diesem Schema (vereinfacht dargestellt):
Delphi-Quellcode:
function XML2Data(const RecvString: string): Boolean;
var
  myXML : IXMLDOMDocument;
  myNodeList : IXMLDOMNodeList;
  myNode : IXMLDOMNode;
  i : Integer;
  myVitalSign: TVitalSign;
begin
  Result := False;
  CoInitialize(nil);
  myXML := CoDOMDocument.Create;
  try
    try
      myXML.Load(RecvString);
      myNodeList := myXML.getElementsByTagName('OBX');
      if myNodeList.length > 0 then
      begin
        myVitalSign := TVitalSign.Create;
        for i := 0 to myNodeList.length - 1 do
        begin
          myNode := myNodeList.Item[i];
          if myNode.hasChildNodes then
          begin
            if myNode.selectSingleNode('OBX.3').Text = 'SpO2then
              myVitalSign.SPO2 := StrToIntDef(myNode.selectSingleNode('OBX.5').Text, 0)
            else if myNode.selectSingleNode('OBX.3').Text = 'PRthen
              myVitalSign.PR := StrToIntDef(myNode.selectSingleNode('OBX.5').Text, 0)
          end;
          Result := True;
        end;
      end;
    finally
      CoInitialize(nil);
    end;
  except
    Result := False;
  end;
end;
Jetzt möchte ich gerne plattformübergreifend werden. IXMLDocument und seine Nodes ist aber weitaus... unhandlicher als IXMLDOMDocument. Wie kann ich also eine Liste bestimmter Knoten analog zu getElementsByTagName finden und wie bekomme ich einen bestimmten Unterknoten analog zu selectSingleNode?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.388 Beiträge
 
Delphi 12 Athens
 
#6

AW: IXMLDomDocument vs. IXMLDocument

  Alt 5. Mai 2020, 09:36
Ja, XPath wird nicht von jeder XML-Library unterstützt, aber jede "Größere" sollte es schon können.

k.A. was IXMLDocument auf den jeweiligen Platformen intern verwendet,
aber ich würde schon davon ausgehen, dass auch das neue IXMLDocument es irgendwo können müsste.
https://de.wikipedia.org/wiki/XPath
MSXML kann es, OmniXML auch und selbst JavaScript kann es.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#7

AW: IXMLDomDocument vs. IXMLDocument

  Alt 5. Mai 2020, 13:59
Sodele, danke für den Hinweis, Himitsu. Roberto Ruiz hat sich der Sache mal vor Jahren angenommen: https://theroadtodelphi.com/category/xpath/

Die Methoden selectNodes und selectSingleNode sehen vielversprechend aus, friemle sie in mein Programm und melde mich gleich wieder.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Alt 29. Mai 2020, 12:04     Erstellt von schwarzalex68
Dieser Beitrag wurde von TBx gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Antwort Antwort

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 01:11 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