Manfred: Html -> Xml

Moin, moin!!

ich klink mich mal an mein leidiges Thema an:

Ich hatte damals ein Problem mit der Übergabe zur XML.
Beispielhaft ist hier mein Html quelltext mit der xml drunter.
Ich versuch gerade den onklick Befehl einzubauen, damit mir die id, bei klicken des Bildes an die XML geschickt wird.
Kann mir jemand nen Denkanstoss geben?

<html>  
<head>  
	<title>Meine html</title>  
	<link rel="stylesheet" type="text/css" href="Desktop\Spielwiese\CSS.css" />  
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
	<xml src="XML.xml" id="XML"></xml>  
  
</head>  
      <body>  
           <script>  
if (window.XMLHttpRequest)  
  {  
  xmlhttp=new XMLHttpRequest();  
  }  
else  
  {  
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  
  }  
xmlhttp.open("GET","XML.xml",false);  
xmlhttp.send();  
xmlDoc=xmlhttp.responseXML;  
  
document.getElementById("deutsch").innerHTML=  
xmlDoc.getElementsByTagName("deutsch")[0].childNodes[0].nodeValue;  
document.getElementById("englisch").innerHTML=  
xmlDoc.getElementsByTagName("englisch")[0].childNodes[0].nodeValue;  
  
</script>  
            <a href="Filmtyp.htm">  
            <img id= "deutsch" src="Grafiken/Webseite/Deutsch.png" border="0" alt="deutsch" title="deutsch" />  
	    <a href="Filmtyp.htm">  
            <img id= "englisch" src="Grafiken/Webseite/Englisch.png" border="0" alt="englisch" title="englisch" />  
  
     </body>  
  
</html>
<?xml version="1.0" encoding="ISO-8859-1"?>  
<Schnittstelle_XML>  
  
  <MAIN.Value>  
  
    <Sprache id="Sprache"></Sprache>  
  
  </MAIN.Value>  
  
</Schnittstelle_XML>
  1. Mh... onklick krieg ich so rein: (anstatt des Bildlinks)

    <button style="Grafiken/Webseite/Deutsch.png" onclick="location.href = 'Filmtyp.htm'">
       <img src="Grafiken/Webseite/Deutsch.png" id="deutsch" />
    </button>

    Nur die Übergabe klappt noch nicht....

  2. Hi,

    Kann mir jemand nen Denkanstoss geben?

    xmlhttp.open("GET","XML.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;

      
    XmlHttpRequest ist standardmäßig asynchron. An dem Punkt, an dem du responseXML abfragst, ist die Anfrage i.d.R. schlicht und ergreifend noch nicht beantwortet. Du musst einen Event-Handler registrieren für Status-Veränderungen des XmlHttpRequest-Objektes.  
      
    Bis die Tage,  
    Matti
    
    1. Wow, okay, das war harter Stoff....
      Ich kann erahnen, was du meinst, aber meine Kentnisse hierzu sind bescheiden.

      Wie müsste es denn heißen? bzw. empfange ich das dann in der XML richtig?

      Danke für deine Mühe,

      VG Manfred

      1. Dein XMLHttpRequest ist synchron (3. Argument im open). Allerdings spricht nichts gegen einen asynchronen. Dazu findet man viele Beispiele

        Den onclick-Event-Handler kannst du auch an einem IMG-Element registrieren, dafür brauchst du keinen button.

        Wie müsste es denn heißen? bzw. empfange ich das dann in der XML richtig?

        Empfangen wird der request vom Server. Für das was du vorhast benötigst du vermutlich eine Serverseitige Behandlung mit z.B. PHP welches dir in Abhängigkeit eines Parameters eine entsprechende XML-Antwort bereitstellt.

        1. Hallo. bei mir hat das aber per Befehl nicht geklappt, dass der beim <img aktiviert worden ist. (Ich editiere mit Notepad++)

          php? Ich hätte jetzt sowas gedacht:

          <?xml version="1.0" encoding="ISO-8859-1"?>  
          <Schnittstelle_XML>  
            <MAIN.Value>  
              <Sprache id="Sprache">Deutsch</Sprache>  
              <Film id="Film">ABS</Film>  
          		<deutsch>  
          			<script> document.getElementById("deutsch").onclick = function ()  
          			</script></deutsch>  
          		<englisch>	</englisch>  
          		<russisch>	</russisch>  
          		<portugisisch>	</portugisisch>  
          	<!-- <Filmnummer id="Filmnr> </Filmnummer> -->  
              <Run id="Run">False</Run>  
            
            </MAIN.Value>  
          </Schnittstelle_XML>
          

          Ich weiss jetzt nur nich wie ich das klick event per id von der html hier reinkrieg...

          1. Hallo. bei mir hat das aber per Befehl nicht geklappt, dass der beim <img aktiviert worden ist.

            Was heisst per Befehl? Was "nicht geklappt"? Was willst du aktivieren?

            (Ich editiere mit Notepad++)

            Was hat das damit zu tun?

            Ich vermute dir fehlt Grundlagenwissen! Ohne Das wird das nichts!

            Ich hätte jetzt sowas gedacht:

            Das ist es auf jeden Fall nicht!

            Ich weiss jetzt nur nich wie ich das klick event per id von der html hier reinkrieg...

            Überhaupt nicht.

            Was du machen kannst, ist das gesammte XML zu laden, dem callback die id mitzugeben und dann anhand dieser id nur die relevanten Teile aus der Antwort filtern.

            Wobei ich aber überhaupt nicht weiss, was du eigentlich machen willst!

            1. Wobei ich aber überhaupt nicht weiss, was du eigentlich machen willst!

              Wenn mich nicht alles täuscht: das hier.

              1. Wobei ich aber überhaupt nicht weiss, was du eigentlich machen willst!

                Wenn mich nicht alles täuscht: das hier.

                Also soll ein XML-File erzeugt werden?
                Da würde ich mich nochmal versichern, ob das wirklich der Fall ist.
                Wenn ja, dann fehlt noch eine Komponente, welche ein XML-File überhaupt erzeugen kann. Das geht im Normalfall nicht Clientseitig über einen Browser.
                Gibt es überhaupt einen Server? Ist der lokal oder auf der SPS oder ist die SPS das Panel?
                Oder wird das HTML-File lokal (über file-Protokoll) auf dem Panel geöffnet? Mit einem Standardbrowser (welcher) oder als Addon oder mit einer Spezial-Applikation mit HTML-View?

                1. Hallo,

                  Wenn mich nicht alles täuscht: das hier.
                  Also soll ein XML-File erzeugt werden?

                  und dabei irgendwelche Daten vom Client mit eingearbeitet werden, wenn ich die konfusen Beschreibungen richtig deute.

                  Wenn ja, dann fehlt noch eine Komponente, welche ein XML-File überhaupt erzeugen kann. Das geht im Normalfall nicht Clientseitig über einen Browser.
                  Gibt es überhaupt einen Server? Ist der lokal oder auf der SPS oder ist die SPS das Panel?
                  Oder wird das HTML-File lokal (über file-Protokoll) auf dem Panel geöffnet? Mit einem Standardbrowser (welcher) oder als Addon oder mit einer Spezial-Applikation mit HTML-View?

                  Eben. Fragen über Fragen; ich bin überzeugt, der OP weiß nicht einmal selbst, was er eigentlich hat, haben möchte, und dafür braucht.

                  Ciao,
                   Martin

                  --
                  Auf jeden Menschen auf der ganzen Welt entfallen statistisch gesehen etwa 3000 Spinnen, wie Wissenschaftler jetzt festgestellt haben.
                  Wer will meine haben? Denn ich will sie bstimmt nicht.
                  Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  1. Fast...

                    der Op taumelt durch eine Welt voller P-sprachen und zig Befehlen, zig Möglichkeiten und hat keine Ahnung wie er das am besten anstellt. An der Mühe haperts nicht, eher am Verständnis.

                    ich hab ne 3 html, ne xml, auf jeder htm nen Bild und ich will nen wert in die XML geliefert bekommen (nicht wie üblich andersrum). Also das per per id irgendwie marken, der XML sagen, guck, da ist ne html, schau da mal rein, krieg den Wert geliefert und speicher ihn.

                    :(

                    1. Ergänzung:

                      Also jedes mal, wenn auf ein Bild klicke.

                      Bsp:
                      1. Teil:

                      1. Seite: Bild -> *Klick* -> 1. id/wert an die xml
                      weiterverlinkung(durch Bildlink)
                      2. Seite: Bild -> *klick* -> 2. id/wert an die xml
                      weiterverlinkung (durch Bildlink)
                      3. Seite: Bild -> *klick* -> 3. id/wert an die xml
                      weiterverlinkung....

                      2. Teil
                      Würde ich z.b. dann wieder auf die Hauptseite zurückgehen... z.B. durch Anklicken der 1. Seite, dann sind die Felder aber wieder leer? oder? oder ist da noch der Wert vom Bild drin, bis ich was anderes (auf der selben Seite) anklicke ?

                      1. der Op taumelt durch eine Welt voller P-sprachen und zig Befehlen, zig Möglichkeiten und hat keine Ahnung wie er das am besten anstellt. An der Mühe haperts nicht, eher am Verständnis.

                        Das glaube ich dir, aber das Verständnis kommt nicht über Nacht und ohne bringt es nichts!
                        Du musst dich erst mal ein paar Monate mit den Grundlagen beschäftigen um zu wissen, worüber du überhaupt redest.

                        ich hab ne 3 html, ne xml, auf jeder htm nen Bild und ich will nen wert in die XML geliefert bekommen (nicht wie üblich andersrum).

                        "in die XML geliefert" ist ganz einfach Unsinn, um das aber zu erkennen fehlen dir die Grundlagen!

                        Also das per per id irgendwie marken, der XML sagen, guck, da ist ne html, schau da mal rein, krieg den Wert geliefert und speicher ihn.

                        Zum Speichern habe ich ja schon was geschrieben und der Rest fällt wieder in die Kategorie fehlende Grundlagen.

                        1. Seite: Bild -> *Klick* -> 1. id/wert an die xml
                          weiterverlinkung(durch Bildlink)
                        2. Seite: Bild -> *klick* -> 2. id/wert an die xml
                          weiterverlinkung (durch Bildlink)
                        3. Seite: Bild -> *klick* -> 3. id/wert an die xml
                          weiterverlinkung....

                        Eine normale Verlinkung ist kein Problem, wenn du über XSL dein XML nach HTML transformierst,
                        das ist aber wieder was anderes als ich bisher eraten habe.

                        Würde ich z.b. dann wieder auf die Hauptseite zurückgehen... z.B. durch Anklicken der 1. Seite,

                        Anklicken eines Links?

                        dann sind die Felder aber wieder leer?

                        normalerweise ja, über eine Serverseitige Sprache aber auch dynamisch belegbar

                        oder ist da noch der Wert vom Bild drin

                        ein Bild hat keinen Wert

                        1. Dafür langt mir leider die Zeit nicht.

                          Ich weiss auch, dass ein Bild keinen Wert hat. Ich rede hier von der id, oder sonst irgendeiner eindeutigen Kennung für das Bild.
                          Sollte ich auf der 1. Seite 3 Bilder haben, und ich klicke eines davon an, so soll die XML wissen, welches in angeklickt habe.

                          Ich hab schon soviel versucht, mit onclick, EventHandler etc...

                          Alles was ich in dem ..&§%"!#.. Internet gesucht hab ist ein Beispiel nach der besten Methode oder wie das überhaupt funktioniert.
                          Das kann doch nicht so schwer sein?
                          Ich meine ich kann ja einem Bild eine ID zuweisen, damit ist das ja eindeutig bezeichnet. Nun soll das klickEvent vom Bild gefangen werden (jaja, ich weiss.. ich formuliers nur so, bitte keine Wörter klauben), die ID des geklickten Bildes irgendwie... getElementbyID oder Eventhandler oder ka... irgendwie dort halt gespeichert werden.

                          Gebt mir nur einen html und XML Quelltext mit EINEM Bild(+link), wo ich dann sehe wie das prinzipell funktioniert, dann troll ich mich wieder und werkel auch selber rum!
                          ...mit nem fetten Dankeschön an den Quelltextspender...

                          1. Moin,

                            Ich weiss auch, dass ein Bild keinen Wert hat. Ich rede hier von der id, oder sonst irgendeiner eindeutigen Kennung für das Bild.

                            ja gut, dann war die Wortwahl ungünstig.

                            Sollte ich auf der 1. Seite 3 Bilder haben, und ich klicke eines davon an, so soll die XML wissen, welches in angeklickt habe.

                            Nochmal: XML ist, genau wie HTML, eine Struktur-Beschreibungssprache. Da ist nichts "aktives" dran, ein HTML- oder XML-Dokument kann nichts von sich aus _tun_. Dazu muss irgendwo eine Programmiersprache zusätzlich ins Spiel kommen. Möglicherweise Javascript, ich kann's aber im Moment nicht absehen, weil ich immer noch nicht wirklich verstanden habe, was du im einzelnen brauchst (und ich habe keine Erfahrung mit dem Handling von XML in Javascript, geb ich offen zu).

                            Das kann doch nicht so schwer sein?

                            Vermutlich nicht, aber du gehst das Problem von der falschen Seite an, wie mir scheint. Du hast -bildlich gesprochen- ein Brötchen (XML) und eine Aufschnittplatte (HTML) mit ein paar Scheiben Schinken, etwas Käse, einigen Gurkenscheiben und Salatblättchen (Bilder mit Kennung). Das Problem ist, dass weder das Brötchen (XML), noch die Aufschnittplatte (HTML) selbst in der Lage sind, das Schinken-Käsebrötchen damit fertig zuzubereiten, sondern dazu braucht man noch ein Paar fleißige Hände (Programmiersprache).

                            Ich meine ich kann ja einem Bild eine ID zuweisen, damit ist das ja eindeutig bezeichnet. Nun soll das klickEvent vom Bild gefangen werden (jaja, ich weiss.. ich formuliers nur so, bitte keine Wörter klauben), die ID des geklickten Bildes irgendwie... getElementbyID oder Eventhandler oder ka... irgendwie dort halt gespeichert werden.

                            Gut. Und das bedeutet eben: XML-Datei öffnen, gezielt verändern, wieder speichern.

                            Gebt mir nur einen html und XML Quelltext mit EINEM Bild(+link), wo ich dann sehe wie das prinzipell funktioniert, ...

                            Nein. Das kann nicht funktionieren, weil eine wichtige Komponente fehlt, nämlich die Verarbeitung. Um da wirklich helfen zu können, musst du aber auch in der Lage sein zu beschreiben, was du momentan eigentlich hast. Soweit ich verstehe:

                            * Ein HTML-Dokument, das als Eingabemaske dienen soll
                             * Ein XML-Dokument, das je nach Benutzer-Aktion dynamisch verändert werden soll
                               WO liegt dieses XML-Dokument? WIE greift man lesend bzw. schreibend darauf zu?
                               Wie sieht so ein XML-Dokument aus? Gib mal ein Beispiel.
                             * Ist ein Webserver im Spiel oder wird das HTML-Dokument über das file-Protokoll
                               angesprochen? Wenn Webserver, was für einer? Was kann er?
                             * Stehen irgendwelche serverseitigen Programmiersprachen zur Verfügung? Welche?

                            Also ... irgendwie wird's wahrscheinlich möglich sein. Aber nicht so trivial, wie du es dir vorstellst.

                            So long,
                             Martin

                            --
                            Die letzten Worte des Architekten:
                            Mir fällt da gerade was ein...
                            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                            1. Hallo Martin,

                              Ich weiß auch ziemlich sicher, dass ich Java Script (und evtl php?) brauche, weil ich ja weder mit html noch xml dies bewerkstelligen kann. Alles was ich kann, ist die ID eines Bildes (mit html) sicher zu stellen. Nun muss ein javascript die Dinger beim klickevent fangen usw. -> xml.

                              Meine HTML:

                              <!DOCTYPE html>  
                                
                              <html>  
                              	<head>  
                              	<title>blablaTitelundso</title>  
                              	<xml src="bus.xml" id="xml"></xml> <!-- Meine XML-->  
                              	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
                              	<link rel="stylesheet" type="text/css" href="C:\CSS.css" /> <!-- Meine CSS -->  
                              	</head>  
                                
                              		<body>  
                              <a href ="Seite2.htm"> <img border ="0" src = "Grafiken/Bus.png" name="Bus" id = "Bus" alt="Bus" onClick="document.getElementByTagname('Bus')[0].firstChild.data="bus.xml" >  
                                
                              <a href ="Seite2.htm"> <img border ="0" src = "Grafiken/Taxi.png" name="Taxi" id = "Taxi" alt="Taxi" onClick="document.getElementByTagname('Bus')[0].firstChild.data="bus.xml" >  
                                
                              		</body>  
                              </html>  
                              
                              

                              Meine XML:

                              <?xml version="1.0" encoding="iso-8859-1"?>  
                              <link rel="bus" type="bus.htm" href="C:bus.htm" />  
                              <!DOCTYPE blabla []>  
                                
                              <Fahrzeuge>  
                                
                              	<Bus> </Bus> <!-- Kommt hier dann der wert rein wenn ich das Busbild anklicke? (und wenn das javascript dazu hab-->  
                              	<Taxi> </Taxi>  
                              	  
                              </Fahrzeuge>  
                              	  
                              	<echo ("test");
                              
                              1. Alles was ich kann, ist die ID eines Bildes (mit html) sicher zu stellen. Nun muss ein javascript die Dinger beim klickevent fangen usw. -> xml.

                                Alles was du kannst, ist die ID eines Bildes (AUS dem im Speicher des Browsers vorhandenen DOM-Trees welcher mit dem vom Server gesendeten html-File-Inhaltes aufgebaut wurde) mit Javascript beim klickevent im klickeventhandler auszulesen. Diese ID kannst du dann an den Server senden, z.B. als URL-Parameter in einem Get-Request oder als Daten in einem Post-Request. Diese so an den Server übertragene ID kann dieser dann wieder z.B. über PHP in eiem XML-File auf dem Server speichern oder aber im Speicher eine XML-Struktur zusammen bauen und wieder an den Browser(Client) senden oder beides oder ...

                                1. Jaaaa, genau, genau... :)

                                  Wie würde das dann bei meinem bsp dann aussehen?

                                  1. Das ist der Teil bis zum Request.

                                    <html>  
                                      <head>  
                                        <title></title>  
                                      </head>  
                                      <body>  
                                        <img id="deutsch" src="Grafiken/Webseite/Deutsch.png" border="0" alt="deutsch" title="deutsch" />  
                                        <img id="englisch" src="Grafiken/Webseite/Englisch.png" border="0" alt="englisch" title="englisch" />  
                                        <script type="text/javascript">  
                                          function doRequest(url, id)  
                                          {  
                                            var xmlhttp = null;  
                                            if (window.ActiveXObject)  
                                            {  
                                              xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
                                            }  
                                            else if (window.XMLHttpRequest)  
                                            {  
                                              xmlhttp = new XMLHttpRequest();  
                                            }  
                                            if (xmlhttp)  
                                            {  
                                              xmlhttp.open("GET", url + "?id=" + id, true);  
                                              xmlhttp.onreadystatechange = function()  
                                              {  
                                                if (this.readyState == 4  
                                                  && (this.status == 200 || this.status == 0))  
                                                {  
                                                  // Antwort erhalten  
                                                }  
                                              }  
                                              xmlhttp.send();  
                                            }  
                                          }  
                                      
                                          var images = document.getElementsByTagName("img");  
                                          for (var i = 0; i < images.length; ++i)  
                                          {  
                                            images[i].onclick=function()  
                                            {  
                                              doRequest("deine url", this.id);  
                                            }  
                                          }  
                                        </script>  
                                      </body>  
                                    </html>  
                                    
                                    
                                    1. Boah, geil!!!

                                      liest sich gut... unten nimmst also ne Schleife um die Bilder nach dem Klick Event abzufragen?
                                      n1... Wenn man sowas liest checkts man auch.. (ich hoffe jedenfalls, dass ich es tu ^^...)

                                      Muss dann bei dem request unten die Adresse der xml rein?

                                      d.h.
                                      die xml mit dem root nimmt das dannauf, wenn im root auch das get element by iD steht?
                                      <name> getblabla...</name>
                                      oder geht das wieder nur mit Javascript?
                                      (irgendwie hab ich das Gefühl, dass die Frage ziemlich doof ist)

                                      Aber hey, auf jeden Fall schon mal megafetten Dank für deine Hilfe!!!

                                      1. Boah, geil!!!

                                        Dachte eigentlich das wäre schon klar und abgehakt. War wohl nicht so. Dann wirds hart!

                                        liest sich gut... unten nimmst also ne Schleife um die Bilder nach dem Klick Event abzufragen?

                                        Nein! Der Klick-Event-Handler wird am img-Element registriert.

                                        n1... Wenn man sowas liest checkts man auch.. (ich hoffe jedenfalls, dass ich es tu ^^...)

                                        Ich befürchte nicht.

                                        Muss dann bei dem request unten die Adresse der xml rein?

                                        Kommt darauf an, was du erreichen willst. Soweit ich verstanden habe nicht, aber du schreibst ja nicht was du erreichen willst. Wenn dein "-> xml" bedeutet, du willst das XML-File an den Browser senden, dann ja!

                                        die xml mit dem root nimmt das dannauf, wenn im root auch das get element by iD steht?
                                        <name> getblabla...</name>
                                        oder geht das wieder nur mit Javascript?
                                        (irgendwie hab ich das Gefühl, dass die Frage ziemlich doof ist)

                                        Sagen wir ungewöhnlich! Meine Antwort wäre: häää?

                                        1. Äh ne, da haben wir grad aneinander vorbei gesprochen...

                                          Die HTML kann ja jetzt per klick senden. Ich weiss ja nur nicht wie die XML diese (id) empfängt und abspeichert, oder darstellt, was da noch in der XML stehen muss.

                                          Ich stells mir halt wie 2 Baseballspieler vor. Der eine (html) beschriftet den Ball (anklicken des Bildes) und kann werfen, die XML steht da und will den ball fangen um sich anschließend zum Publikum umzudrehen und die Beschriftung zu zeigen (speichern in xml). Just in dem Moment fragt sich die xml wie sie denn den ball mit der ID fangen soll und das Ding rauscht ihr an den Kopf und vorbei ists...

                                          also so stell ich es mir bildlich vor...

                                          1. Äh ne, da haben wir grad aneinander vorbei gesprochen...

                                            Ganz oft schon!

                                            Die HTML kann ja jetzt per klick senden.

                                            Der Browser über JS!

                                            Ich weiss ja nur nicht wie die XML diese (id) empfängt

                                            Die XML nicht, der Server!

                                            und abspeichert,

                                            Die XML nicht, der Server könnte das mit z.B. PHP!

                                            oder darstellt,

                                            Die XML nicht, der Server könnte mit XSL das XML-File in HTML wandeln und wieder an den Browser senden!

                                            Ich stells mir halt wie 2 Baseballspieler vor. Der eine (html) beschriftet den Ball (anklicken des Bildes) und kann werfen, die XML steht da und will den ball fangen um sich anschließend zum Publikum umzudrehen und die Beschriftung zu zeigen (speichern in xml). Just in dem Moment fragt sich die xml wie sie denn den ball mit der ID fangen soll und das Ding rauscht ihr an den Kopf und vorbei ists...

                                            also so stell ich es mir bildlich vor...

                                            Ja, so ungefähr stell ich mir das auch immer vor! Bei mir trifft der Ball mit der ID aber immer den Kopf und alles ist voller Blut!

                                            1. Die HTML kann ja jetzt per klick senden.
                                              Der Browser über JS!

                                              Ja mein ich doch auch :(

                                              Ich weiss ja nur nicht wie die XML diese (id) empfängt
                                              Die XML nicht, der Server!

                                              wtf? d.h. jetzt nochn Server?

                                              und abspeichert,
                                              Die XML nicht, der Server könnte das mit z.B. PHP!

                                              Oh neee... ich seh dunkle Wolken aufziehen.. dachte das geht irgendwie direkt in die XML Datei...

                                              oder darstellt,
                                              Die XML nicht, der Server könnte mit XSL das XML-File in HTML wandeln und wieder an den Browser senden!

                                              urgs... d.h. Ich muss jetzt nen Server etablieren, der per php die ID fängt?
                                              (Kann ich, wenn die Dinger aufm Server liegen die auch per ID wieder abgreifen?

                                              Ich stells mir halt wie 2 Baseballspieler vor. Der eine (html) beschriftet den Ball (anklicken des Bildes) und kann werfen, die XML steht da und will den ball fangen um sich anschließend zum Publikum umzudrehen und die Beschriftung zu zeigen (speichern in xml). Just in dem Moment fragt sich die xml wie sie denn den ball mit der ID fangen soll und das Ding rauscht ihr an den Kopf und vorbei ists...

                                              also so stell ich es mir bildlich vor...

                                              Ja, so ungefähr stell ich mir das auch immer vor! Bei mir trifft der Ball mit der ID aber immer den Kopf und alles ist voller Blut!

                                              Anders bildlich gesprochen:
                                              Das war ja noch harmlos, jetzt komm ich ins Spiel.... Stell dir 2 Profmarathonläufer vor, die html und xml, die streiten sich wer schneller ist, also muss ich mitlaufen, da kommt jetzt die pfeilschnelle php dazu und mosert rum, weil sie nicht mitmachen darf. Da kommt nen Meteor vom Himmel (Zeitdruck) Alle 3 rennen los und ich soll mitkommen

                                              Nur ich seh aus wie Rainer Calmund, steh am Münztelefon und red mit dir und der Schatten wird immer größer....

                                              1. Hallo Manfred,

                                                ich versuche mal eine Übersicht über die Prozesse und Techniken zu erstellen:

                                                Browser:
                                                  HTML:
                                                    Zeigt Seite mit Bild
                                                  Javascript:
                                                    Gibt Bild Eventhandler für Mausklick
                                                    Verarbeitet Mausklick, setzt http-Request ab

                                                Server
                                                  PHP oder andere Sprache
                                                    reagiert auf http-Request
                                                    Öffnet XML-Datei
                                                    Sucht entsprechende Stelle
                                                    Trägt Bild-ID ein
                                                      ...
                                                    Speichert XML-Datei
                                                      (Hier muss evtl. darauf geachtet werden, dass nicht mehrere
                                                       Requests gleichzeitig laufen und sich in die Quere kommen ...)
                                                    Gibt evtl. Erfolgs- oder Misserfolgsmeldung zurück

                                                Browser
                                                  Javascript
                                                    Die Callbackfunktion des HTTP-Request nimmt die Erfolgs- oder
                                                    Misserfolgsmeldung entgegen und schreibt Sie ins HTML, z.B. wird das geklickte Bild
                                                    grün oder rot eingerahmt ...

                                                Gruß, Jürgen

                                                1. Moin moin,

                                                  vielen Dank für die Rückmeldungen.. ich glaub ein bischen hats gezündet.... also was das Verständnis angeht.
                                                  D.h. also im Klartext ich muss nen nen Server mit php etablieren?

                                                  Mal gucken ob ich was finde, wie sowas aussieht... php kenne ich auch bloß die rudimentären Befehle, welche in ner html eingebettet sind.
                                                  Mal ganz blöd gefragt... wird in meinem beispiel die Programmierung in Länge und Komplexität arg heftig? Ich kann das im Moment nicht abschätzen.

                                                  Viele Grüße, Manfred aka Rainer Calmund

                                                  1. Mal ganz blöd gefragt... wird in meinem beispiel die Programmierung in Länge und Komplexität arg heftig? Ich kann das im Moment nicht abschätzen.

                                                    Für deinen Kenntnisstand, ja!
                                                    Ich kann mir aber auch nicht vorstellen, daß dir jemand solch eine Aufgabe übergibt. Deshalb würde ich mich nochmal versichern, was genau du machen sollst, was schon vorhanden ist und wie die Struktur des Projektes nun wirklich aussieht.
                                                    Zu klären wäre dann auch noch, wie die XML-Dateien eigentlich auf die SPS kommen.

                                                    1. Naja, man wächst bekanntlich an Herausforderungen... ich hab genauso doof geguckt...

                                                      Ich hab grad mit nem Kollegen gesprochen, der meinte das mit dem  server/php bräuchte man nicht.
                                                      Da gäbs eine XML write funktion.

                                                      Sowas in der Richtung:

                                                      	<script>  
                                                        
                                                      		function writeXML() {  
                                                      			var fso = new ActiveXObject("Scripting.FileSystemObject");  
                                                      			var file = fso.CreateTextFile('C:\\Users\\userx\\Documents\\Visual Studio 2012\\WebSites\\WebSite1\\XMLFile4.xml', true);  
                                                      			file.WriteLine('<?xml version="1.0" encoding="utf-8"?>\n');  
                                                      			file.WriteLine('<PersonInfo>\n');  
                                                        
                                                              //for (countr = 0; countr < UserData.length; countr++) {  
                                                              //    file.Write('    <Person ');  
                                                              //    file.Write('Usrname="' + UserData[countr][0] + '" ');  
                                                              //    file.Write('Pswd="' + UserData[countr][1] + '" ');  
                                                              //    file.Write('PersonID="' + UserData[countr][2] + '" ');  
                                                              //    file.Write('FirstName="' + UserData[countr][3] + '" ');  
                                                              //    file.Write('LastName="' + UserData[countr][4] + '" ');  
                                                              //    file.Write('Gender="' + UserData[countr][5] + '" ');  
                                                              //    file.Write('DOB="' + UserData[countr][6] + '" ');  
                                                              //    file.Write('Title="' + UserData[countr][7] + '"');  
                                                              //    file.WriteLine('></Person>\n');  
                                                              //} // end for countr  
                                                        
                                                              file.WriteLine('</PersonInfo>\n');  
                                                              file.Close();  
                                                          }  
                                                      		</script>
                                                      
                                                      1. Hallo Manfred,

                                                          	var fso = new ActiveXObject("Scripting.FileSystemObject");  
                                                          	var file = fso.CreateTextFile('C:\\Users\\userx\\Documents\\Visual Studio 2012\\WebSites\\WebSite1\\XMLFile4.xml', true);  
                                                        

                                                        also spätestens jetzt MUSST du uns sagen, was du machen willst, was auf welchem Rechner läuft, wieviele Rechner da mitspielen, etc.

                                                        Die ActiveX-Lösung geht davon aus, dass ALLES auf einem Rechner läuft, Browser und SPS. Oder wo liegt bei euch die C:?

                                                        Also, wie sieht die Umgebung aus?

                                                        Gruß, Jürgen

                                                        1. Liegt auch alles auf einem Rechner,

                                                          Html Oberfläche touch, und dahinter die SPS in Form von TwinCat

                                                          1. Hallo Manfred,

                                                            Liegt auch alles auf einem Rechner

                                                            OK, dann würde ActiveX gehen. IE-Only ist hoffentlich kein Problem. Ob und wie man mit ActiveX XML Parsen und verändern kann, weiß ich aber nicht. Da wirst du wohl mal einen Blick in die Doku werfen müssen. Da ich XML nur lese, benutze ich zum Auswerten die DOM-Methoden.

                                                            Gruß, Jürgen

                                                            1. Ob und wie man mit ActiveX XML Parsen und verändern kann, weiß ich aber nicht.

                                                              Lesen entweder über einen XHR oder über MS-Erweiterungen die auch zum Speichern genommen werden können.

                                                              Man kann es auch serialisieren und dann mit Hilfe des WSH als Text abspeichern.

                                                              Bearbeiten über die DOM-Methoden.

                                                      2. Und wenn du auch mal auf eine Frage antworten würdest hätte man sich das ganze Geeiere sparen können!

                                                        Da gäbs eine XML write funktion.

                                                        Deshalb habe ich hier unter anderem nach dem Browser gefragt.

                                            2. Hallo,

                                              Äh ne, da haben wir grad aneinander vorbei gesprochen...
                                              Ganz oft schon!

                                              das liegt daran, dass Manfred völlig falsche Vorstellungen von dem hat, was da abläuft bzw. ablaufen muss. Er sieht in XML Fähigkeiten und Möglichkeiten, die weit abseits der Realität sind.

                                              Ich weiss ja nur nicht wie die XML diese (id) empfängt
                                              Die XML nicht, der Server!

                                              Ich sagte es vorher schon: XML ist nur eine Beschreibungssprache. Ein XML-Dokument kann nichts "tun", es ist passiv. Du brauchst (nein, Manfred braucht) zwingend noch eine Sprache, die eine Verarbeitungs- und Ablauflogik realisieren kann. Das könnte zum Beispiel PHP sein, weil dehr verbreitet, universell und (zumindest in den Grundzügen) leicht zu lernen.
                                              Nebenbei: "Die XML" ist eine ganz blöde Formulierung.

                                              Ich stells mir halt wie 2 Baseballspieler vor. Der eine (html) beschriftet den Ball (anklicken des Bildes) und kann werfen, die XML steht da und will den ball fangen ...

                                              Neineinein! Spieler zwei hat "Webserver" auf seinem Trikot stehen. Der fängt den Ball, gibt ihn an den nächsten Spieler weiter, der beispielsweise "PHP" heißt. PHP nimmt nun einen neuen Ball, schreibt das XML-Dokument drauf, fügt dabei die ID vom ersten Ball mit ein und wirft den neuen Ball dann zurück. Oder legt ihn in die Kiste, oder was immer damit auch passieren soll.

                                              So long,
                                               Martin

                                              --
                                              Sozial ist, wenn andere bezahlen.
                                              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      2. Hi,

        du hast hier zwei verschiedene Komponenten, die zunächst erstmal unabhängig voneinander sind.

        a) Serverseite
        Serverseitig willst du ein XML-Dokument anbieten. Das kann ein statisches Dokument sein, kann aber auch durch eine serverseitige Programmiersprache dynamisch erstellt werden. Für den Anfang kannst du deine XML-Datei erstmal so auf dem Server ablegen und die hier im Thread gegebenen Hinweise bzgl. PHP ignorieren.

        b) Clientseite
        Ich habe geschrieben, dass XmlHttpRequest asynchron ist. D.h., dass der Programmablauf weitergeht, obwohl die Antwort des Servers ggf. noch nicht da ist. Weiter schrieb ich, dass du den Event-Handler über den Antwort-Status registrieren musst. Einfaches Beispiel:

          
        xhr.onreadystatechange = function(e) {  
          if (this.readyState =! 4) {  
            return;  
          }  
          var xmlDoc = this.responseXml;  
          // ...  
        };  
        xhr.send();  
        
        

        xhr ist ein XmlHttpRequest-Objekt.
        Das Event "readystatechange" wird jedesmal aufgerufen, wenn sich der Ready-State des XmlHttpRequest-Objekts (bzw. des Requests) ändert. 4 ist der Zustand "Antwort ist angekommen". Dort, wo die Aussparung (...) ist, kannst du mit dem XML-Dokument dann arbeiten.

        Bis die Tage,
        Matti

  3. Om nah hoo pez nyeetz, Manfred!

    Was ist dein _eigentliches_ Ziel? In der Beschreibung darf XML _nicht_ vorkommen, nur falls du ganz genau weißt, dass es xml-Dateien sein _müssen_

    Also, was möchtest du erreichen? Beschreibe es aus der Sicht eines Menschen, der sich deine Seite anschaut und von nichts eine Ahnung hat.

    Matthias

    --
    1/z ist kein Blatt Papier.