您的位置:首页 > 其它

[导入]在xslt中调用webservice的方法

2005-03-06 17:38 330 查看
在本系统中我需要将一些数据从数据库中取出,后来我基于扩展的问题,决定用webservice来实现,这样就要使用xslt来调用webservice的数据,我使用的C#语言的ASP.NET
首先,因为我调用的webservice不是一个而且经常变化,所以我必须采用动态的调用WebService的技术,我参考了以上文章,照抄了那个写得很不错的函数。
然后就要把xslt来与C#挂钩,这就要使用XSLT扩展,xslt的文件代码如下:

<?xml version="1.0" encoding="UTF-16" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:WebExam="urn:WebExam"> <!--注册命名前缀-->
<xsl:template match="/exam/questionGroups/choiceQuestion">
<xsl:value-of select="WebExam:GetQuestionsString(50000)"/><!--调用函数,50000是一个参数-->
</xsl:template>
</xsl:stylesheet>

然后写这个函数申明,在C#中建立如下对象:

public class WebService

最后就是要把这个对象和xslt注册上,这个要使用XSLT扩展,即:

XslTransform xslt = new XslTransform();
xslt.Load("1.xslt");

XsltArgumentList xslArg = new XsltArgumentList(); //这段代码是关键
WebService obj = new WebService();
xslArg.AddExtensionObject("urn:WebExam", obj);

XmlDocument doc = new XmlDocument();
doc.Load("1.xml");
xslt.Transform(doc,xslArg,Response.Output,null);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: