Seite 1 von 1

XML Verständnisproblem?

Verfasst: 8. Oktober 2018, 07:29
von satmax
Hallo,
ich möchte ein XML-Respond auswerten und komme nicht wirklich weiter. Hier der XML-Inhalt den ich erhalte (gekürzt!):

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns2:renderMapResponse xmlns:ns2="http://xmap.xs.gr.com">
      <return image="iVBORw…“
        <bounds minX="6.0628899158" maxX="6.3027724922" minY="49.481637933" maxY="49.598399762"/>
      </return>
    </ns2:renderMapResponse>
  </soap:Body>
</soap:Envelope>
Damit möchte ich den Wert von "image" auslesen:

Code: Alles auswählen

bRes is boolean
MyDoc is string = fLoadText("C:\Temp\XMap-renderMap-response.xml")
bRes=XMLDocument("xmldoc1", MyDoc)
IF bRes THEN
// Versuche hier alle möglichen Varianten....
	sImage is string = XMLRead("xmldoc1","soap:Body[1]/ns2:renderMapResponse[1]/return[1]/@image") // soap:Envelope
	sImage = XMLRead("xmldoc1","soap:Body") // soap:Envelope
	sImage = XMLRead("xmldoc1","return[1]/@image") // soap:Envelope
	sImage = XMLRead("xmldoc1","return/@image") // soap:Envelope
	sImage = XMLRead("xmldoc1","soap:Body/ns2:renderMapResponse/return/@image","ERROR")
	sImage = XMLRead("xmldoc1","soap:Body[1]/ns2:renderMapResponse[1]/return[1]/@image","ERROR") // soap:Envelope
	sImage = XMLRead("xmldoc1","soap:Body/ns2:renderMapResponse/return/@image","ERROR") // soap:Envelope
END

sImage ist aber immer leer bzw. beinhaltet "ERROR". Was mache ich hier falsch?

Gruß
Markus

Re: XML Verständnisproblem?

Verfasst: 8. Oktober 2018, 08:56
von Herbert
Das einfachste ist, über die XSD-Datei zu gehen. Da hast du gleich noch die Regeln mit dabei und die Strukturen sind komplett bekannt.

Code: Alles auswählen

sXMLELr1 is xmlDocument <description="eCH-0090-1-0">    // dieses xml ist im Projekt eingelesen worden
sBuf is string

sXMLELr1=XMLOpen(spath+sbuf,fromFile)
sbuf=sXMLELr1.envelope.messageType    // ist direkt so bekannt, wie alle anderen Elemente auch. 
            //Musst einfach den Datentyp der jeweiligen Variablen kennen

Re: XML Verständnisproblem?

Verfasst: 8. Oktober 2018, 10:18
von satmax
Ok, diese Methode funktioniert und ist wahrscheinlich auch besser, danke Herbert. Trotzdem würde ich gerne wissen, was bei meinem Ansatz falsch ist.

Re: XML Verständnisproblem?

Verfasst: 8. Oktober 2018, 11:59
von Herbert
Da kann ich nur raten. Er findet das Element nicht.
- Gross- Kleinschreibung exakt?
- Root-Element vorhanden? Falls nein mit "/" beginnen
mehr steht in der Hilfe, die du dir sicher angesehen hast. https://doc.windev.com/en-US/?1000017030&name=XMLRead

was passiert bei:

Code: Alles auswählen

sImage = XMLRead("xmldoc1","Envelope/Body/renderMapResponse.return/@image")
oder ersetze mal die "/" mit ".", also wie die Verwendung der Variablen gemäss meinem Beispiel

Re: XML Verständnisproblem?

Verfasst: 8. Oktober 2018, 12:13
von satmax
Ja, da sollte alles passen, habe ja alle Varianten durchprobiert. Wenn er etwas nicht findet wird es im debugger sogar markiert....

Re: XML Verständnisproblem?

Verfasst: 9. Oktober 2018, 12:28
von Herbert
Nein. Lass mal die Präfixes weg...