2009-10月 综合信息网实战心得

来源:互联网 发布:初创网络公司简介 编辑:程序博客网 时间:2024/04/25 23:54

 

本次制作综合信息网在图库德操作中,主要运用了Ajax、XML与XSLT综合使用

 

一、在服务器端进行XSLT的转换

 

在这个函数中主要的功能就是通过DATASET产生一个XML文档对象,将其存在内存流中然后进行XSLT的转化直接输出到Response流中,

为了不生成物理的XML文档,这里采用MemoryStream、XmlWriter、XmlReader搭配使用产生这个效果。这里要注意的是”ms.Seek(0, SeekOrigin.Begin)“:当使用xml.Save()这个方法将xml文档对象的内容写入内存流的过程中,流中的指针随写入结束一直知道流最后一个位置,在用XmlReader从内存流中读取内容之前,必须将流指针归位。否则会因为指针在最后位置而无法读出任何内容(就这个问题差点雷死我。。。)

 

 

 

二、DATASET与XML的转换

在制作DATASET转化成XML文档的时候,发现使用XmlDataDocument xml = new XmlDataDocument(myData)、还是DATASET.WriteXML()或其他方法转换,都发现在数据集中当某个字段为空的时候,转换后的XML文档中都没有对应的元素。由于目前没有找到解决的方法,我暂时用自己写的一个方法来生成xml文档。

 

 

三、由于使用Ajax所以存在跨浏览器的问题一下本次不同浏览器对xml文档操作的差异

IE:

var items = xmlDoc.selectNodes("//NewDataSet/item/JTZK");//取得一个节点元素

items[i].text;//取得节点的内容

 

Mozila:

var items = xmlDoc.getElementsByTagName("JTZK");

items[i].firstChild.textContent;//取得节点的内容