- 最近做一个在线客服系统,用到的解析XML
- XML文件user.asp
- <?xml version="1.0" encoding="utf-8"?>
- <%response.ContentType="application/xml"%>
- <data>
- <userinfo>
- <user>
- <username>a</username>
- <count>2</count>
- <isreguser>1</isreguser>
- <chat>
- <content>第一个</content>
- <systemdata>2008-8-8</systemdata>
- </chat>
- <chat>
- <content>第二个</content>
- <systemdata>2008-8-9</systemdata>
- </chat>
- </user>
- <user>
- <username>hello</username>
- <count>1</count>
- <isreguser>0</isreguser>
- <chat>
- <content>haha</content>
- <systemdata>2008-8-10</systemdata>
- </chat>
- </user>
- <user>
- <username>my</username>
- <count>1</count>
- <isreguser>0</isreguser>
- <chat>
- <content>haha</content>
- <systemdata>2008-8-120</systemdata>
- </chat>
- </user>
- </userinfo>
- <AnswerDate>
- <Answer>您好,欢迎光临,我们将竭诚为您服务!</Answer>
- <Answer>普通会员积分满1000,可以提升为VIP会员!</Answer>
- </AnswerDate>
- <onlineService>
- <onlineServiceInfo>
- <onlineServiceID>1</onlineServiceID>
- <onlineServiceName>财务</onlineServiceName>
- <onlineServiceStatus>0</onlineServiceStatus>
- </onlineServiceInfo>
- <onlineServiceInfo>
- <onlineServiceID>2</onlineServiceID>
- <onlineServiceName>销售</onlineServiceName>
- <onlineServiceStatus>1</onlineServiceStatus>
- </onlineServiceInfo>
- <onlineServiceInfo>
- <onlineServiceID>3</onlineServiceID>
- <onlineServiceName>售前</onlineServiceName>
- <onlineServiceStatus>2</onlineServiceStatus>
- </onlineServiceInfo>
- </onlineService>
- </data>
- 对应解析文件:
- <pre class="jscript" name="code">function ResponseDate(){
- var url = 'user.asp';
- var pars = 'RandID='+new Date();
- var myAjax = new Ajax.Request(
- url,
- {
- method: 'post',
- parameters: pars,
- onComplete: showResponse,
- onFailure:showerr
- });
- }
- function showerr(originalRequest){
- alert("err");
- }
- function showResponse(originalRequest){
- var UserString="";
- var AnswerString="";
- var ServiceString="";
- //获取XML/
- var results = originalRequest.responseXML;
- //alert(results);
- //用户列表/
- var items = results.getElementsByTagName("user");
- var item;
- for(var i = 0; i < items.length; i++) {
- item = items[i];
- var usernames =item.getElementsByTagName("username")[0].firstChild.nodeValue;
- var mycount =item.getElementsByTagName("count")[0].firstChild.nodeValue;
- var isreg =item.getElementsByTagName("isreguser")[0].firstChild.nodeValue;
- UserStringUserString=UserString+usernames+"|"+mycount+"|"+isreg+"|||";
- if(mycount>0){
- var chatitems = item.getElementsByTagName("chat");
- var chatitem;
- for(var j = 0; j < chatitems.length; j++) {
- chatitem = chatitems[j];
- var chatcontent =chatitem.getElementsByTagName("content")[0].firstChild.nodeValue;
- var chatdata =chatitem.getElementsByTagName("systemdata")[0].firstChild.nodeValue;
- setChatsRecordString(usernames,chatcontent,chatdata,1);
- }
- }
- //ChatsRecordStringChatsRecordString=ChatsRecordString+"[|]"
- }
- //问题列表/
- var AnswerItems = results.getElementsByTagName("Answer");
- //alert(AnswerItems.length);
- var AnswerItem;
- for(var i = 0; i < AnswerItems.length; i++) {
- AnswerItem = AnswerItems[i];
- var myAnswer =AnswerItem.firstChild.nodeValue;
- AnswerStringAnswerString=AnswerString+myAnswer+"|";
- }
- //客服列表/
- var ServiceItems = results.getElementsByTagName("onlineServiceInfo");
- //alert(ServiceItems.length);
- var ServiceItem;
- for(var i = 0; i < ServiceItems.length; i++) {
- ServiceItem = ServiceItems[i];
- var onlineServiceID =ServiceItem.getElementsByTagName("onlineServiceID")[0].firstChild.nodeValue;
- var onlineServiceName =ServiceItem.getElementsByTagName("onlineServiceName")[0].firstChild.nodeValue;
- var onlineServiceStatus =ServiceItem.getElementsByTagName("onlineServiceStatus")[0].firstChild.nodeValue;
- ServiceStringServiceString=ServiceString+onlineServiceID+"/"+onlineServiceName+"/"+onlineServiceStatus+"|";
- //alert(onlineServiceID+"/"+onlineServiceName+"/"+onlineServiceStatus);
- }
- alert(results.getElementsByTagName("onlineUser")[0].firstChild.nodeValue);
- }</pre>