我正在使用codemirror,我想要从xml文件中读取它们的颜色...所以模式的功能定义如下:
CodeMirror.defineMode("mymode", function() {
return {
token: function(stream,state) {
if (stream.match("class1") ) {
return "style1";
} else if (stream.match("hello")||stream.match("hi")||stream.match("hpp")||stream.match("get") ) {
return "style2";
}
else if (stream.match("program")||stream.match("println"))
{
return "style3";
}
else {
stream.next();
return null;
}
}
};
});
现在我想阅读xml文件中的文字......我写道:
CodeMirror.defineMode("mymode", function() {
return {
token: function(stream,state) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("TemplateDef");
y=xmlDoc.getElementsByTagName("TemplateField");
z=xmlDoc.getElementsByTagName("TemplateFieldType");
alert(z.length);
for (i = 0; i< x.length; i++) {
if(x[i].getAttribute('className')!==null)
if (stream.match(x[i].getAttribute('className')) ) {
return "style1";**
//这里我返回样式
** } } };
xmlhttp.open("GET", "Symbol Table Example.xml", true);
xmlhttp.send();
});
但它不是函数xmlhttp.onreadystatechange不执行永远...我知道它不起作用,因为我在函数范围内...但我如何解决问题?如何从xml文件中读取特定的单词和cplor他们?