请问jsdom为什么无法解析属性值中有小于号的xml <q value='<'/> 或者 <q><</q>都无法解析,大于号没问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你先给讲下jsdom,然后就有为回答你的问题了。 感谢楼上提醒.现贴上示例代码.浏览器为IE.<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>无标题文档</title><script>var JsUtil = new Object();JsUtil.parseXml = function(s) { var XmlDom = function() { if(window.ActiveXObject) { var arrSignatures = ["Msxml2.DOMDocument.6.0","MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument","Microsoft.XmlDom"]; for (var i=0; i < arrSignatures.length; i++) { try { var oXmlDom = new ActiveXObject(arrSignatures[i]); return oXmlDom; } catch (oError) { //ignore } } throw new Error("MSXML is not installed on your system."); }else{ return null; //do more } }; var obj = new XmlDom(); obj.async = false; obj.loadXML(s); obj.onreadystatechange = function() { if(obj.readyState == 4) { return obj; } } return obj;}function initReportForm() { // parse xml var xml = document.ReportForm.xml.value; var doc = JsUtil.parseXml(xml).documentElement; alert(JsUtil.parseXml(xml).xml); alert(doc);}</script></head><body><button onClick="initReportForm()">test</button><form name="ReportForm" method="post" action="report.do" target="_blank"><input type="hidden" name="xml" value="<q value='>'></q>"/></form></body></html> 问题已经找到了.当写成<input type="hidden" name="xml" value="<q value='<'/>"/>用document.ReportForm.xml.value取值时,<符号已经被转成了<号了,这时已经不符合xml格式标准.直接将字符串"<q value='<'/>"传递给js变量就不会出错了. 关于JavaScript 的一个图片浏览效果 在一主窗口 a.htm 中,用js,open了一个子窗口aa.htm,在主窗口中如何找开的子窗口aa.htm是不被激活中 MSCOMM的问题 关于web使用特殊字体的问题 各位大下进来看一下谢过谢过谢过 JS关于打印的问题?(2个问题) 文件路径问题,高手请进 急需一个统计网站浏览次数的计数器,最好漂亮点,好用就给分! 请帮我看看这段js脚本是什么意思??? 怎样在js中控制<input type=file> jquery中符号$表示什么哦? 求救啊...关于cookie读取之后转换的问题.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
var JsUtil = new Object();
JsUtil.parseXml = function(s) {
var XmlDom = function() {
if(window.ActiveXObject) {
var arrSignatures = ["Msxml2.DOMDocument.6.0","MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument","Microsoft.XmlDom"];
for (var i=0; i < arrSignatures.length; i++) {
try {
var oXmlDom = new ActiveXObject(arrSignatures[i]);
return oXmlDom;
} catch (oError) {
//ignore
}
}
throw new Error("MSXML is not installed on your system.");
}else{
return null; //do more
}
};
var obj = new XmlDom();
obj.async = false;
obj.loadXML(s);
obj.onreadystatechange = function() {
if(obj.readyState == 4) {
return obj;
}
}
return obj;
}function initReportForm() {
// parse xml
var xml = document.ReportForm.xml.value;
var doc = JsUtil.parseXml(xml).documentElement;
alert(JsUtil.parseXml(xml).xml);
alert(doc);
}
</script>
</head><body>
<button onClick="initReportForm()">test</button>
<form name="ReportForm" method="post" action="report.do" target="_blank">
<input type="hidden" name="xml" value="<q value='>'></q>"/>
</form>
</body>
</html>