关于xsl用法的总结:
一月份公司的需求要修改给求职者发送订阅的最新职位信息的邮件模板,而我来开发一月份的需求。
简单描述:
我们当前的邮件发送程序是通过wsf文件,调用xsl模板,然后调用邮件发送程序,定期向用户发送最新的招聘信息,之前有修改过wsf程序,但是都忘记了,记录一下今天遇到的问题。
- 邮件主题修改为用户订阅器设置的关键字,通过修改加载的xml节点下的文本,然后定义变量,获取对应的值,传入邮件发送方法中实现。
- 控制获取到的职位列表显示为10个,我本来是想修改存储过程很快就能实现的,但是由于存储过程关联到搜索功能,所以就只好放弃这种思路,利用xsl中的方法,最初想到的是利用,获取当年列表节点,利用foreach绑定模板,然后利用position()<11,获取最前面的10条记录,可是小于符号,丝毫不起作用,尝试了很多办法不行,后来,采用xsl:if,然后利用test=”节点名称&1t 11”,只获取前面的10条记录。
- 获取记录总数,因为对应的存储过程是创建的临时表,然后获取临时表中所有的记录,然后实现绑定列表的,这样,要取得总数,利用xsl中count()函数,但是又是丝毫不起作用,另外我也担心,由于之前的显示10条,不知道会不会对应的总数一直会是10条,尚未验证,最后利用count(*), 结果提示错误,要求需要groupby,sql真的快忘记光啦,一直用的linq。基本的错误都出现啦,后来发现在取回的结果集的时候,有@@rowcount,于是在读取的时候,利用as,给赋值,然后在模板xsl中绑定对应的属性。获取到对应的职位总数。
- 获取订阅周期,由于现在我们的订阅周期是根据我们的wsf文件中制定,所以,这个地方利用全局变量,直接获取,然后传入xml模板中对应的属性值,然后在xsl中实现绑定。
- 有关xsl:template的用法,之前的应用程序,创建了两个template,第一次利用/来获取根节点,而后的利用根节点的名称,recordset,实现绑定,但是,当我用新的模板,实现绑定的时候,不能发送出来邮件,一点一点的加模板,只能实现一个的绑定,当时做广告系统的时候,有修改和了解过xsl模板,于是,在这里对模板做了改动,修改为只用一个template,然后,获取相应节点来绑定,结果是可以的,就这样,今天算是把这几个问题都搞定啦
Asp中的相关知识:
-
利用<% =%>定义服务端,定义变量,dim,末尾不能加逗号,然后在页面中绑定,不能重复变量的命名。例如:那个vifId,不错的情况下,学会一点一点的调试,找出错误的根源。Request.query(“”);另外一个方法,request.serverVarable(“Query String”),获取服务器端中?后面的字符串。
Asp中if then else end if 注意end if 不能省略。在asp页面中可以利用变量的值是否存在直接判断是否显示对应的html标签。例如:<% if a<>”” A%> <a href=”” ></a><%end if%>
C# 低级错误:List<a>列表对象中add的时候,不能为null,当时写方法的时候因为要给列表对象初始化值,导致未将对象实例化的错误,还以为是在foreach中实例化对象造成的错误。
异步请求中,参数的传入可能导致的问题:
当时开发的功能要修改订阅频率,想要客户端传入订阅频率和账号guid,这样会导致被别人知道guid,就可以篡改数据库的情况。所以说,考虑问题的时候要考虑安全性,开发完不是完,那是才完成50 %,后面程序的测试,程序的性能,安全都是要考虑的问题。
xsl://对应的xsl中节点名称,实现根节点内容的绑定。