本文主要是介绍Ajax直接返回xml流,并应用于xslt,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
处理页面:
String name = Request.QueryString["zfname"].ToString();
DataSet myData = new DataSet();
myData.ReadXml(Server.MapPath("~/XML/zcfg.xml"));
DataRow[] row = myData.Tables["SUBZCFGINFO"].Select("FATHER_ID = '" + name + "'");
DataTable table = myData.Tables["SUBZCFGINFO"].Clone();
foreach (DataRow drow in row)
table.ImportRow(drow);
DataSet xml = new DataSet();
xml.Tables.Add(table);
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
xml.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
//在这里声明了一个XmlTextWriter对象,应用于http输出流然后将DataSet数据集用XML形式装入数据流,这样就可以返回一个Xml文档的字符串
//在接受页中用loadXML方法将这个带有XML格式的字符串转换成XML对象,然后利用Xslt文档进行转换成HTML格式
接受页面:
<script type="text/javascript">
var XHRobject = false;
if(window.XMLHttpRequest)
{
XHRobject = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
XHRobject = new ActiveXObject("Microsoft.XMLHTTP");
}
function sendRequest(file_id,name)
{
title.innerText = name;
XHRobject.open("Get","GetZcfgSub.aspx?zfname="+file_id,true);
XHRobject.onreadystatechange = getData;
XHRobject.send(null);
}
function getData()
{
if(XHRobject.readystate == 4 && XHRobject.status == 200)
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML(XHRobject.responseText);
var xslDoc = loadDocument("../XSL/XSLZcfgSub.xsl");
result.innerHTML = xmlDoc.transformNode(xslDoc);
}
}
function loadDocument(filename)
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(filename);
return xmlDoc;
}
function openZgWindow(filename)
{
window.showModalDialog("../html/"+filename+".htm",'标题',"dialogHeight: 30;dialogWidth: 40;edge:Raised;center:Yes;help:No;resizable:No;status:No;");
}
</script>
xslt文档:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!--
This is an XSLT template file. Fill in this area with the
XSL elements which will transform your XML to XHTML.
-->
<table style="width:80%;height:100%">
<xsl:for-each select="//SUBZCFGINFO">
<tr style="height:50px">
<td style="width:80%">
<div>
<xsl:attribute name="onclick">
openZgWindow('<xsl:value-of select="NAME"/>')
</xsl:attribute>
<xsl:value-of select="NAME"/>
</div>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
这篇关于Ajax直接返回xml流,并应用于xslt的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!