2009-06-25 12 views
0

Ich habe einen JavaScript-Funktionscode, wo ich warnen möchte.JavaScript-Alarmwert von XML lesen

function msg(x,y) 
{ 
tempstr = x.value 
if(tempstr.length>y) 
{ 
    alert(c_AcknowledgementText); 
    x.value = tempstr.substring(0,y); 
    } 
} 

Jetzt habe ich eine XML mit folgendem Format:

<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <key name="c_ContactUsHeading">Contact Us</key> 
    <key name="c_AcknowledgementText">Comments can not be more than 250 characters.</key> 
</root> 

ich den JavaScript-Code will, so dass die Nachricht in oben Alarm gezeigt von oben xml Schlüsselnamen "c_AcknowledgementText" gelesen werden.

Ich hoffe, es ist klar über mein Problem.

Antwort

1

Im Grunde wollen Sie XMLHttpRequest verwenden. Ich bin mir aber nicht sicher, was du mit Tempstr usw. machen willst.

function msg(x,y) 
{ 
    tempstr = x.value; 
    if(tempstr.length>y) 
    { 
     var req = new XMLHttpRequest(); 
     req.open('GET', '/file.xml', true); 
     req.onreadystatechange = function (aEvt) { 
      if (req.readyState == 4) { 
       if(req.status == 200) 
       { 
        var keys = req.responseXML.getElementsByTagName("key"); 
        for(var i = 0; i < keys.length; i++) 
        { 
         var key = keys[i]; 
         if(key.getAttribute("name") == "c_AcknowledgementText") 
         { 
          alert(key.textContent); 
          break; 
         } 
        } 
       } 
       else 
        alert("Error loading page\n"); 

        } 
     }; 
     req.send(null); 
     x.value = tempstr.substring(0,y); 
    } 
} 
+0

Danke Matthew, aber mein Code geht nicht ins if (req.readyState == 4), bitte vorschlagen? Kann es mit JQuery gemacht werden? –

+0

Ja, Sie könnten JQuery verwenden. Aber vielleicht möchtest du herausfinden, was zuerst passiert. Erhalten Sie irgendwelche Fehler? Hast du überprüft, dass der Pfad korrekt ist? –

0

Sie müssen die XML-Datei für c_AcknowledgementText analysieren (entweder in JavaScript oder mit einer serverseitigen Sprache und beim Laden der Seite in JavaScript speichern).

+0

Danke, kann ich Code mit Javascript haben. –

1

Der erste Schritt besteht darin, eine DOM-Referenz auf das XML-Dokument zu erhalten. Eine Möglichkeit, das zu tun, ist mit Ajax. In diesem Fall muss der Server mit dem Header Content-Type: text/xml antworten.

$.ajax({ 
    type: "GET", 
    url: "/path/to/my.xml", 
    dataType: "xml", 
    success: function(doc){ 
    var keys = doc.getElementsByTagName('key'); 
    if (keys.length > 0) { 
     for (var i=0; i<keys.length; i++) { 
     if (keys[i].getAttribute('name') == 'c_AcknowledgementText') { 
      alert(keys[i].innerHTML); 
     } 
     } 
    } 
    } 
}); 

Sie müssen möglicherweise einige zusätzliche Fehlerbehandlung usw.

+0

Die Eigenschaft ist responseXML. –

+0

Korrigiert - Danke. – steamer25

+0

kann es mit jquery getan werden? Wenn ja dann bitte geben Sie mir den Code –