Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从xml读取javascript警报值_Javascript_Xml - Fatal编程技术网

从xml读取javascript警报值

从xml读取javascript警报值,javascript,xml,Javascript,Xml,我有一个JavaScript函数代码,希望在其中发出警报 function msg(x,y) { tempstr = x.value if(tempstr.length>y) { alert(c_AcknowledgementText); x.value = tempstr.substring(0,y); } } 现在我有一个xml,格式如下: <?xml version="1.0" encoding="utf-8" ?> <root> &

我有一个JavaScript函数代码,希望在其中发出警报

function msg(x,y)
{
 tempstr = x.value
if(tempstr.length>y)
 {
  alert(c_AcknowledgementText);
  x.value = tempstr.substring(0,y);
  }
}
现在我有一个xml,格式如下:

<?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>

联系我们
注释不能超过250个字符。
我需要JavaScript代码,以便可以从上面的xml键名“c_AcknowledgementText”读取上述警报中显示的消息


我希望我的问题已经清楚了。

您必须解析XML文件以获取c_AcknowledgementText(可以是JavaScript,也可以使用服务器端语言,并在页面加载时将其存储到JavaScript中)。

第一步是获取XML文档的DOM引用。一种方法是使用Ajax。在这种情况下,服务器需要使用内容类型:text/xml头进行响应

$.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);
         }
       }
     }
   }
 });  
$.ajax({
键入:“获取”,
url:“/path/to/my.xml”,
数据类型:“xml”,
成功:功能(doc){
var keys=doc.getElementsByTagName('key');
如果(keys.length>0){

对于(var i=0;i基本上,您希望使用XMLHttpRequest,但不确定您想用tempstr做什么,等等

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);
    }
}
函数消息(x,y)
{
tempstr=x.value;
如果(临时长度>y)
{
var req=新的XMLHttpRequest();
打开('GET','/file.xml',true);
req.onreadystatechange=功能(aEvt){
如果(req.readyState==4){
如果(请求状态==200)
{
var keys=req.responseXML.getElementsByTagName(“key”);
对于(变量i=0;i
可以使用jquery完成吗?如果可以,请给我代码如何对XML文档进行dom引用?请帮助我更新了答案,以包含jquery AJAX功能。用实际路径替换/path/to/my.XML。谢谢Matthew,但我的代码没有进入if(req.readyState==4),请建议?可以使用JQuery吗?是的,您可以使用JQuery。但是您可能想先了解发生了什么。是否有任何错误?是否检查了路径是否正确?