XML Datei auslesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • XML Datei auslesen

    Hi ich hab da mal eine Frage, da ich mich mit XML nicht sooo doll auskenne wollte ich mal Wissen ob evtl. einer ne Idee hat.
    Wir haben auf der Arbeit eine Cisco Telefonanlage über die telefonanlage läuft eine XML die ausgibt welche Person welchen Status hat:

    <tr style='mso-yfti-irow:1'>
    <td style='padding:3.0pt 3.0pt 3.0pt 3.0pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Agent
    XY </span></p>
    </td>
    <td style='padding:3.0pt 3.0pt 3.0pt 3.0pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;
    color:red'>NotReady</span></p>
    </td>
    <td style='padding:3.0pt 3.0pt 3.0pt 3.0pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>XY </span></p>
    </td>
    <td style='padding:3.0pt 3.0pt 3.0pt 3.0pt'>
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>2007-09-06
    11:29:42.573</span></p>
    </td>
    </tr>

    das Funktioniert auch...

    Und nun meine Frage die Seite wird mit diesem Code immer auf dem Aktuellen Stand gehalten:

    <meta http-equiv=refresh
    content="5; URL=http://Serverbeispiel/service.xml">

    Aber so lädt er jedesmal die komplette Seite neu!
    Das will ich aber nicht er soll nicht jedes mal die Seite Neuladen sondern nur den Inhalt (siehe obigen Code)

    Also ich will es so haben das ich eine Form (im HTML format oder sonst irgendwie habe) und diese mit den Daten fülle und zwar NUR mit den Daten aus der XML Datei ohne das Aussehen.
    Ich denke da gibt es einen anderen Code als den obigen (da er ja mit dem Meta Code jedesmal die Seite komplett lädt)

    1. Ist es möglich bestimmte Datensätze aus der obigen Datei auszulesen?
    2. kann ich dies mit einer HTML Form Lokal auslesen?
    3. Danke für eure Antworten :)
  • Hi sorry hab mich evtl. etwas missverständlich ausgedrückt,
    ich will die Daten aus der XML Datei nehmen (sprich nur den Status der einzelnen Agenten sozusagen.
    Brauch das Ready oder Not Ready usw.
    <p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;
    color:red'>NotReady</span></p>
    </td>
    Also eigentlich brauch ich nur das! Nur das Problem ist wie bekomme ich das hier in eine HTML Datei die ich Lokal auf meiner Maschine aufrufe.
    Hier mal eine Übersicht wie es jetzt aussieht:
    Agent Statistics Agents States Extensions Ready Time
    Agent 27201 NotReady 27201 2007-09-06 11:29:42.573

    Die XML Datei liegt auf einem Server...

    Und genau das alles wird immer aktualisiert, aber ich will das nicht ich will nur den Status aktualisieren...

    ist es so deutlicher? Aber danke schon mal für die schnelle Antwort.
    Oder hast du meine Frage damit schon beantwortet und ich hab was übersehen?
  • Nein gibt insgesamt 17 und es sind auch immer verschiedene Angemeldet :(
    Aber das ist kein Problem bei denen die nicht angemeldet sind steht so wie es derzeit ist auch nichts drin.
    Also wenn ich eine Statische Maske mache dann kann da ruhig nichts drin stehen :)

    Es gibt 17 agenten die in verschiedenen Gruppen arbeiten, Eine Gruppe mit 7 und 2 mit 5 Personen.
    Desweiteren muss ich nur "Ready" und den Status sehen :)
    Und evtl. noch die Uhrzeit aber mehr benötige ich eigentlich nicht.
    Zur Zeit ist es halt so das wir den Link aufrufen und dort eine XML liegt die sich selbst immer nach 5sek. wieder aufruft mit den neuen Daten.
  • Okay... da war ich wohl zu übereifrig ^^
    Meine Erinnerung hatte mir einen Streich gespielt, mit JavaScript kann man keine Dateien öffnen. War dann wirklich PHP gewesen, tut mir echt leid dir Hoffnungen gemacht zu haben...

    Wenn du aber den IE benutzt kann ich dir wiederum helfen^^ Soweit bin ich nun gegangen, um dein Wunsch zu bewerkstelligen xD

    HTML-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <title>Test</title>
    5. <script type="text/javascript">
    6. // <![CDATA[
    7. // Begin Autoreload script
    8. function UpdateIt() {
    9. var filename = 'test.txt';
    10. var fso, strng;
    11. fso = new ActiveXObject('Scripting.FileSystemObject');
    12. File = fso.OpenTextFile(filename, 1, false);
    13. strng = File.read(99999999);
    14. document.getElementById('content').innerHTML = strng;
    15. File.Close();
    16. }
    17. setTimeout('UpdateIt()', 1000);
    18. // End Autoreload script
    19. // ]]>
    20. </script>
    21. </head>
    22. <body>
    23. <div id="content">&nbsp;</div>
    24. </body>
    25. </html>
    Alles anzeigen

    Wusste jetzt nicht wie das ganze Aussieht, sonst kann man da noch mit indexof arbeiten und dir nur das ausgeben, was du brauchst.

    Gruß

    P.S.
    Könnt dir auch was in Delphi erstellen
  • Hey danke sehr ich bin nun nur etwas verwirrt?!
    Wo kommt das genau rein? Ich bräuchte ja irgendwo die Datenabfrage von der XML Datei oder?
    Ich kann dir ja auch einfach mal den Quelltext von der Intranet Seite schicken über die wir nun die XML abfragen?!
    Vielleicht macht dir das auch dann einiges leichter?
    Nur wenn du soviel Zeit überhaupt in sowas Investieren möchtest :)
    Ich wäre dir sehr Dankbar :D

    [edit] kannst mir ja einfach eine PN zukommen lassen[/edit]
  • Also das ist die fertige Seite. Du musst halt "test.txt" mit dem Pfad zur xml-Datei ändern.

    Das mit dem Quelltext für die jetzige Seite wäre von Vorteil, zur Not könnt ich dann ja doch noch auf Delphi umsteigen *gg

    Hei, "User helfen User", das ist doch das Motto des "How to". Wenn ich anfange zu helfen, dann wird solange gewerkelt, bis UserA zufrieden ist ;)

    Vielleicht hat in paar Monaten ein User das gleiche Prob, darum ist das mit PN nicht so gut, weil dann die Lösung/Weg zur Lösung hier im Topic fehlt.

    gruß
    Broken Sword
  • Okay cool Danke so hier mal der Quelltext der Aktuell angezeigten Seite (ich muss die leider etwas anpassen, da es Interne Links sind und diese hier nicht drin stehen dürfen)
    Aber hier mal der Code:

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <meta http-equiv='refresh' content='5; URL=http://blibla/test/service.xml' />
    4. </head>
    5. <body>
    6. <center><font face=arial size=1><h1>Agent Statistics</h1>
    7. <table border=0 cellpadding=4><tr><td bgcolor='F5F5F5' align=left><font face=arial size=3>
    8. <b>Agents</b></td>
    9. <td bgcolor='F5F5F5' align=left><font face=arial size=3><b>States</b></td>
    10. <td bgcolor='F5F5F5' align=left><font face=arial size=3><b>Extensions</b></td>
    11. <td bgcolor='F5F5F5' align=left><font face=arial size=3><b>Ready Time</b></td></tr>
    12. <tr><td><font face=arial size=2>Agent 27201 </td><td><font face=arial size=2 color=#00FF00>Ready</td><td><font face=arial size=2>27201 </td>
    13. <td><font face=arial size=2>2007-09-10 07:46:44.527</td></tr>
    14. <tr><td><font face=arial size=2>Agent 27203 </td>
    15. <td><font face=arial size=2 color=#FF0000>NotReady</td>
    16. <td><font face=arial size=2>27203 </td>
    17. <td><font face=arial size=2>2007-09-10 07:54:25.563</td></tr>
    18. <tr><td><font face=arial size=2>Agent 27204 </td>
    19. <td><font face=arial size=2 color=#00FF00>Ready</td>
    20. <td><font face=arial size=2>27204 </td>
    21. <td><font face=arial size=2>2007-09-10 07:57:44.767</td></tr>
    22. <tr><td><font face=arial size=2>Agent 27205 </td>
    23. <td><font face=arial size=2 color=#00FF00>Ready</td>
    24. <td><font face=arial size=2>27205 </td>
    25. <td><font face=arial size=2>2007-09-10 07:56:21.987</td></tr>
    26. <tr><td><font face=arial size=2>Agent 27211 </td>
    27. <td><font face=arial size=2 color=#00FF00>Ready</td>
    28. <td><font face=arial size=2>27211 </td>
    29. <td><font face=arial size=2>2007-09-10 07:55:13.28</td></tr>
    30. <tr><td><font face=arial size=2>Agent 27214 </td>
    31. <td><font face=arial size=2 color=#00FF00>Ready</td>
    32. <td><font face=arial size=2>27214 </td>
    33. <td><font face=arial size=2>2007-09-10 07:51:43.327</td></tr>
    34. </table></font></center></body></html>
    Alles anzeigen
  • So, also bei der Seite, die du gepostest hast funktioniert es soweit.
    Man bekommt folgende Ausgabe:

    Quellcode

    1. Agent 27201 => Ready
    2. Agent 27203 => NotReady
    3. Agent 27204 => Ready
    4. Agent 27205 => Ready
    5. Agent 27211 => Ready
    6. Agent 27214 => Ready

    Hoffe das reicht dir :)

    HTML-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <title>Test</title>
    5. <script type="text/javascript">
    6. // <![CDATA[
    7. // Begin Autoreload script
    8. function UpdateIt() {
    9. var filename = 'test.txt';
    10. var fso, strng, temp;
    11. fso = new ActiveXObject('Scripting.FileSystemObject');
    12. File = fso.OpenTextFile(filename, 1, false);
    13. strng = File.read(99999999);
    14. File.close();
    15. temp = strng.substr(strng.indexOf('Time</b>',1)+18,strng.length);
    16. strng = '';
    17. while(temp.search('Agent') > 0) {
    18. strng = strng+temp.substr(temp.indexOf('Agent'),11)+' =&gt; '+temp.substr(temp.indexOf('size=2 color=')+21,(temp.indexOf('Ready</td>')+5)-(temp.indexOf('size=2 color=')+21))+'<br />';
    19. temp = temp.substr(temp.indexOf('</td></tr>')+10,temp.length);
    20. }
    21. document.getElementById('content').innerHTML = strng;
    22. }
    23. setTimeout('UpdateIt()', 1000);
    24. // End Autoreload script
    25. // ]]>
    26. </script>
    27. </head>
    28. <body>
    29. <div id="content">&nbsp;</div>
    30. </body>
    31. </html>
    Alles anzeigen


    Gruß
    Broken Sword
  • Cool vielen Dank sieht doch schon sehr sehr gut aus ;)
    Ist genau das was ich brauche :)
    Und genau das muss ich jetzt noch schick verpacken :D
    Aber vielen Dank schon mal :)

    Sorry war lange nicht da daher der späte Dank :)