Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#7

AW: Einfachere Methode, um an XML-Daten zu kommen?

  Alt 19. Okt 2017, 17:51
Meine Befürchtung hat sich bestätigt: der Code funktioniert so nicht, weil die Namespaces nicht passen.
Delphi-Quellcode:
uses ..., GetCommonLinksPropertiesResponse;

var
  LXMLBody: IXMLBodyType;
  LXMLGCLP: IXMLGetCommonLinkPropertiesResponseType;
begin
    LXMLDoc:= FRITZBox_SOAPDownload(FRITZBOX_UPNP_WANCommonIFC1_URL, FRITZBOX_URN_WANCOMMONIFC, cGCLP, False);
    LXMLBody:= GetCommonLinkPropertiesResponse.GetEnvelope(LXMLDoc).Body;
    LXMLGCLP:= LXMLBody.GetCommonLinkPropertiesResponse;
Bei der letzten Zeile rummst es mit "Node ... not found". Wahrscheinlich noch wichtig: Die Exception kommt nur, wenn LXMLDoc.ReadOnly:= True und LXMLDoc.Options den Wert doNodeAutoCreate nicht beinhaltet. Trifft beides nicht zu, werden leere Knoten in LXMLDoc angelegt, und logischerweise kommen so auch keine Werte für die Eigenschaften NewWANAccessType & Co zurück.

Die Sache muss also anders aufgebaut sein, damit sie funktioniert und den geänderten Namespace berücksichtigt. Da sind wir wieder zurück beim FindNode, oder wie würde man das normalerweise machen, wenn nicht damit?

Grüße
Dalai
  Mit Zitat antworten Zitat