ajax返回xml的问题
服务器:
XmlDataDocument xmlDoc = new XmlDataDocument(ds);
Response.Write(xmlDoc.InnerXml);
Response.End();在js里用:
1:var xmlDoc = xmlHttp.responseTEXT;
alert(xmlDoc);
结果:<NewDateSet><Table><user_id>1</user_id><user_name>zjy</user_name></Table></NewDateSet>
2:var xmlDoc = xmlHttp.responseXML;
alert(xmlDoc);
结果:[object]
3: var xmlDoc = xmlHttp.responseXML.documentElement;
alert(xmlDoc);
结果:null
4:var northNode = xmlDoc.getElementsByTagName.selectSingleNode('user_id')[0].firstChild.nodeValu;
alert(xmlDoc); 结果:出错,得不到结果
问:1:现在要得到user_id的值如何做?
2:要得到xml得所有值,并把它显示在table里就要怎么做?
eg: 列1 列2
1 zjy
请高手指教:另:qq群:19877329
Mail: [email protected]欢迎加入群讨论软件相关事项。
服务器:
XmlDataDocument xmlDoc = new XmlDataDocument(ds);
Response.Write(xmlDoc.InnerXml);
Response.End();在js里用:
1:var xmlDoc = xmlHttp.responseTEXT;
alert(xmlDoc);
结果:<NewDateSet><Table><user_id>1</user_id><user_name>zjy</user_name></Table></NewDateSet>
2:var xmlDoc = xmlHttp.responseXML;
alert(xmlDoc);
结果:[object]
3: var xmlDoc = xmlHttp.responseXML.documentElement;
alert(xmlDoc);
结果:null
4:var northNode = xmlDoc.getElementsByTagName.selectSingleNode('user_id')[0].firstChild.nodeValu;
alert(xmlDoc); 结果:出错,得不到结果
问:1:现在要得到user_id的值如何做?
2:要得到xml得所有值,并把它显示在table里就要怎么做?
eg: 列1 列2
1 zjy
请高手指教:另:qq群:19877329
Mail: [email protected]欢迎加入群讨论软件相关事项。
var xmlDoc = xmlHttp.responseXML.xml
返回是空的,什么都没有不过还是谢谢你了
<?xml version="1.0" encoding="GB2312"?>
<NewDateSet><Table><user_id>1</user_id><user_name>zjy</user_name></Table></NewDateSet>你也看到了阿~~~这个不是xml格式的啊,少了头部
<?xml version="1.0" encoding="GB2312"?>
---------------------------------------------------------------------------------
DATASET本来返回的XML格式就是这个,什么少了头部,这和XML格式有什么关系
LZ,我做了一个相册也是返回DATASET的XML格式,但用的方法是ds.GetXml(),不过返回的格式也是和LZ一样的到客户端要用一个对象来加载所有的XML字符,然后用childNodes[0].text如此类的方式就可以取得所有的节点数据了
xmlDoc.async=false;
xmlDoc.loadXML(str); node = xmlDoc.selectSingleNode("//sponsor_org"); var node = xmlDoc.getElementsByTagName('sponsor_org')[0]; }
请求页的代码如下
SqlDataAdapter da = new SqlDataAdapter("select * from PinPai", Exsql.con);
DataSet ds = new DataSet("PinPai");
da.Fill(ds);
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
ds.WriteXml(writer);//ds为你的DATASET,本例中是从数据库PinPai表获取
writer.Flush();
Response.End();
writer.Close();
接收页:
result = xmlHttp.responseText;
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oDoc.loadXML(result);
var item=oDoc.selectNodes("//PinPai/Table/ID"); //Pinpai是DataSet名称
上面的item即为ID
如有不懂,可站内短信。
sp_xml_removedocument
这是sql2005里面的,你可以查一下具体用法,我们用的时候觉得很好用,可以直接解析xml格式。
cool!
function CreateXMLhttpRequest()
{
xmlhttprequest = null;
if(window.XMLHttpRequest)
{
xmlhttprequest = new XMLHttpRequest(); //ff
}
else if(window.ActiveXObject)
{
try
{
xmlhttprequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttprequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{}
}
}
}
function CreateTable()
{
CreateXMLhttpRequest();
var url = "***.aspx";
xmlhttprequest.open("GET",url,true);
xmlhttprequest.send(null);
var text = xmlhttprequest.responseText;
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oDoc.loadXML(text);
var id = oDoc.selectNodes('//id');
var name = oDoc.selectNodes("//name");
var table = document.createElement("table");
table.style.border = "1px solid #33CC99";
for(var i = 0;i<id.length;i++)
{
var tableRow = table.insertRow();
tableRow.insertCell().innerHTML = id[i].firstChild.nodeValue ;
tableRow.insertCell().innerHTML = name[i].firstChild.nodeValue ;
}
document.getElementById("div").appendChild(table);
}
<body>
<form id="form1" runat="server">
<div id="div">
<input type="button" value="测试" onclick="CreateTable()
" />
</div>
</form>
</body>
1、必须保证异步请求的那个url 放在浏览器里可以访问,结果是个正确的XML格式,不能出现错误。
所以服务端必须输出到页面如这样的内容:
--------------------
<?xml version="1.0" encoding="GB2312"?>
<NewDateSet><Table><user_id>1</user_id><user_name>zjy</user_name></Table></NewDateSet>-------------
这里的encoding="GB2312" 或 encoding="UTF-8" 都可以,我的XML文件中有中文,所以用了encoding="GB2312"2、服务器端输出时必须加上ContentType,我用ASP是这么写的:
response.ContentType="text/xml"
response.Charset="UTF-8"'
<NewDateSet><Table><user_id>1</user_id><user_name>zjy</user_name></Table></NewDateSet>