javascript读取xml出错:报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

javascript读取xml出错:报错

kun坤 2020-06-07 20:25:35 76

改别人N年前的脚本,javascript和xml都写在一个文件中,脚本如下:

function loadTemplate(sTagName,sEditName){
	document.all.TemplateContent.value = xmlTemplate.selectSingleNode("//Template" + sTagName).text;
	document.all.TemplateTag.value = sTagName;
	document.all.editTag.innerText = sEditName;
}
<xml id="xmlTemplate">
	<Template>
		<TemplateName>{$TemplateName$}</TemplateName>
		<TemplateCSS><![CDATA[{$CSS$}]]></TemplateCSS>
		<TemplateHead><![CDATA[{$Head$}]]></TemplateHead>
		<TemplateFoot><![CDATA[{$Foot$}]]></TemplateFoot>
		<TemplateIndex><![CDATA[{$Index$}]]></TemplateIndex>
		<TemplateList><![CDATA[{$List$}]]></TemplateList>
		<TemplateView><![CDATA[{$View$}]]></TemplateView>
		<TemplateSearch><![CDATA[{$Search$}]]></TemplateSearch>
		<TemplateMemberList><![CDATA[{$Member_List$}]]></TemplateMemberList>
		<TemplateImgList><![CDATA[{$Img_List$}]]></TemplateImgList>
		<TemplateError><![CDATA[{$Error$}]]></TemplateError>
		<TemplateSuccess><![CDATA[{$Success$}]]></TemplateSuccess>
	</Template>
</xml>


 javascript这一行报错:

document.all.TemplateContent.value = xmlTemplate.selectSingleNode("//Template" + sTagName).text;

不知道怎么改,求帮助

XML JavaScript 前端开发 数据格式
分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-06-07 20:26:28

    奶奶个腿,问题终于解决了。不是脚本的问题,不过这个脚本在ie7以上也不老正常的。是数据库被人注入过,在替换后的{$TemplateName$}的文本里出现了<eval request("ice")%>字样,造成脚本读不到相应的node。谢谢各位相助 ######没见过这样的文件   文件全文是什么样子的呢?######全文太长,都是html,主要的目的就是点击链接,执行这个函数读取xml节点的数据显示在文本框中######没文档吗? ?######回复 @blindcat : 很同情你######没有,嘛都没有。都搞不懂为啥乱七八糟啥玩意都写在一个页面里######selectSingleNode是IE下的特有用法  
    【http://www.w3school.com.cn/xmldom/met_node_selectsinglenode.asp】
    http://shaolong.me/k 
    ######刚查了下XPATH的查找语法://Template表示的是所有Template节点。从代码来看你想取得的是TemplateName等的类似节点。如果sTagName被alert出来是TemplateName,那么感觉应该写成 "//Template" + "/" +  sTagName 。 你试试看行不行。######一样的结果 //就是忽略了路径,后面是拼的一个字符串######我测试了很久,用了类似的取值方式,发现可能你alert的不对. 你用xmlTemplate.selectSingleNode("//"),里面确定的应该是唯一的节点。假设为noded3,而根据语法<b>3</b>像这样在中间的值也是作为一个节点所以应该nodeValue,alert(nodes3.childNodes[0].nodeValue);我在本地自己写了一个测试程序是可以取到其中的值的。######我写的代码放在博客里了http://my.oschina.net/luckyone/blog/127340。你可以拿去跑跑看。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程