如果数据中不包括<br>、 符号可正确返回数据,但如果数据中包括<br>、 这些符号,用results[0].getElementsByTagName("content")[0].firstChild.data提取数据就会显示错误“0为空或不是对象”。怎么办呢?是在做一个新闻系统的详细内容显示功能。
解决方案 »
- vs2005,vs2008里一个很奇怪的问题
- 求一动态导航栏示例
- .Net2005中布局很奇怪,请指点
- gridview 如果不使用向导怎么绑定数据啊
- 新闻发布系统在首页显示的问题
- 如何动态的添加TextBox?
- VS2005,刚把他的SDK快速入门教程也装好,现在进不去!显示错误Server Application Unavailable !看日志错误号是500:Interal Server err
- 帮忙:大家讲讲FRAMESET和IFRAME各自的优点和缺点?
- 谁有用ASP.NET 和 SQL 做的完整网站给我看看
- 请问vs.net(初版)在2003安装的问题
- 汗死。。被一个极其白菜的问题困扰了几个星期。。。
- 俺是初学者,从网上找来的这段分页显示示例代码,运行报错??!!
results=xmlResult.getElementsByTagName("result");
不知道你的dom结构 如何分析??? 只能告诉你getElementsByTagName没有取道
XML_Result="<?xml version=""1.0"" encoding=""gb2312""?><blogsearch>"
IF Search_Word<>Empty Then
' 创建查询SQL语句
sqlSearch="SELECT log_ID,log_Title,log_Content FROM blog_Content WHERE log_Title LIKE '%"&Search_Word&"%'"
' 打开记录集
rsSearch.open sqlSearch,Conn,1,1
' 如果没有搜索结果就产生一个结果,logid为#,标志着没有搜索结果
IF rsSearch.BOF AND rsSearch.EOF Then XML_Result=XML_Result&"<result><log_id>#</log_id></result>"
' 循环输出搜索结果
Do While Not rsSearch.EOF
XML_Result=XML_Result&"<result><log_id>"&rsSearch("log_ID")&"</log_id><log_title>"&rsSearch("log_Content")&"</log_title></result>" ' 循环输出每一个结果 rsSearch.MoveNext
Loop
Else
' 关键字为空,则返回无搜索结果
XML_Result=XML_Result&"<result><logid>#</logid></result>"
End IF
XML_Result=XML_Result&"</blogsearch>"
' 设置MIME Type为XML文档
Response.ContentType = "text/xml"
Response.CharSet = "gb2312"
' 输出搜索结果
Response.Write(XML_Result)
JS:
xmlObj.open ("POST", "ajaxsearch.asp", true);
// 设置请求头,表单内容格式为URLEncoded
xmlObj.setRequestHeader("Content-Type ","application/x-www-form-urlencoded ");
// 设置完成请求后响应函数
xmlObj.onreadystatechange=function() {
// 完成响应
if(xmlObj.readyState==4) {
// 状态正常
if(xmlObj.status==200) {
// 设置xmlResult为搜索结果XML文档
xmlResult=xmlObj.responseXML;
// 调用AjaxShowResult()显示搜索结果
AjaxShowResult();
function AjaxShowResult() {
if(results[0].getElementsByTagName("log_id")[0].firstChild.data=="#")
// 是空,则显示没有符合的搜索结果
strTemp=strTemp+"<li>无搜索结果</li>";
else
// 循环输出每个搜索结果
for(i=0;i<results.length;i++)
strTemp = strTemp + "<li><a href='blogview.asp?log_ID=" + results[i].getElementsByTagName("log_id")[0].firstChild.data + "'>" + results[i].getElementsByTagName("log_title")[0].firstChild.data + "</a></li>";
strTemp=strTemp+"</ul>";
.innerHTML = strTemp
}
var b=a.....
<,>,",',&都是xml的特殊字符.要么你将其转义,要么在content节点将内容用cdata标记.
<>'"&除了用xmlhttp外,也可以直接在 js 里用xmldom去操作.
var xmldoc=new ...;
xmldoc.load("ajaxsearch.asp");
...主要还是因为content里特殊字殊的原因. 这样返回的内容不是标准的xml文档,你再用xml的方法去取它,当然报错了.