更新全局JavaScript变量的麻烦

时间:2014-05-08 08:25:13

标签: javascript xml variables xslt global-variables

我正在尝试对XML文档进行排序,并决定采用“通过XSLT排序”方法。

但是,我无法更新应该包含XML和XSLT文件内容的两个全局变量,我无法弄清楚原因。

到目前为止,我从来没有遇到过这种问题和全局变量工作......我也没有在函数内部声明它们,而是使用全局名称而且尝试使用window.variable,但是没有果。

有没有人知道代码为什么不更新全局变量?

最好的问候,

daZza

<script type="text/javascript"> 

var xml = "";
var xsl = "";


function callSort()
{
    loadSortXML();
    loadSortXSLT();
    sortXML();
}


function loadSortXML()
{
    var xmlHttp = null;
    var xmlData;
    var xmlFile = "data/LessonsLearned.xml";

    if (typeof XMLHttpRequest != 'undefined')
    {
        xmlHttp = new XMLHttpRequest();
    }

    if (!xmlHttp)
    {
        try
        {
            xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
        } 
        catch(e)
        {
            try
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
            } 
            catch(e)
            {
                xmlHttp = null;
            }
        }
    }

    if (xmlHttp)
    {
        var url = xmlFile;
        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = function() 
        {
            if (xmlHttp.readyState == 4)
            {               
                xml = xmlHttp.responseXML;
            }
        }
        xmlHttp.send();
    }
}


function loadSortXSLT()
{
    var xmlHttp = null;
    var xmlData;
    var xmlFile = "data/xslt.xml";

    if (typeof XMLHttpRequest != 'undefined')
    {
        xmlHttp = new XMLHttpRequest();
    }

    if (!xmlHttp)
    {
        try
        {
            xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
        } 
        catch(e)
        {
            try
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
            } 
            catch(e)
            {
                xmlHttp = null;
            }
        }
    }

    if (xmlHttp)
    {
        var url = xmlFile;
        xmlHttp.open("GET", url, true);
        xmlHttp.onreadystatechange = function() 
        {
            if (xmlHttp.readyState == 4)
            {                       
                xsl = xmlHttp.responseXML;
            }
        }
        xmlHttp.send();
    }
}


function sortXML()
{
    console.log("XML " + xml);
    console.log("XSL "+ xsl);

    var parser = new DOMParser();
    var domToBeTransformed = parser.parseFromString(xml, "text/xml");
    var xslt = parser.parseFromString(xsl, "text/xml");
    var processor = new XSLTProcessor();

    processor.importStylesheet(xslt);

    var newDocument = processor.transformToDocument(domToBeTransformed);            
    var serializer = new XMLSerializer();
    var newDocumentXml = serializer.serializeToString(newDocument);
    alert(newDocumentXml);
}

</script>   

0 个答案:

没有答案
相关问题