VB技巧:通过向XSLT传送参数来定制输出

2003-1-2 11:24:35【作者】 畅享网 【进入论坛】
广告

VB技巧:通过向XSLT传送参数来定制输出

当用XSLT转换XML数据时,你可能想用参数来定制输出。想用VB做这件事的话,你可以用Microsoft XML Parser组件中的两个对象XSLTemplate和IXSLProcessor来实现。

XSLTemplate对象用于存储一个转换的副本。为在服务器环境下使用,该转换可以被暂时存储起来。一旦XSLTemplate读取了这个转换,你就可以用createProcessor函数创建一个IXSLProcessor。

把输入输出DOMDocuments设置为IXSLProcessor对象;然后你就可以用addParameter函数添加参数了。addParameter函数的参数是你要添加的那个参数的名称和参数值,还有命名空间是可选项。

在IXSLProcessor上调用转换函数将会执行转换过程,同时把你指定的参数传送过去。

XML

<?xml version="1.0"?>
<Employees Id="1"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
<Employee Id="1">
<Name>John Smith</Name>
</Employee>
<Employee Id="2">
<Name>John Doe</Name>
</Employee>
</Employees>
XSLT

<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml"/>
<xsl:param name="EmpId"/>
<xsl:template match="/">
<EmployeeName>
<xsl:apply-templates
select="//Employees/Employee[@Id=$EmpId]"/>
</EmployeeName>
</xsl:template>
<xsl:template match="Employee">
<xsl:value-of select="Name"/>
</xsl:template>
</xsl:stylesheet>
VB

Dim domSource As DOMDocument
Dim domTransform As FreeThreadedDOMDocument
Dim domOutput As DOMDocument
Dim objTemplate As XSLTemplate
Dim objProcessor As IXSLProcessor

Set domSource = New DOMDocument
Set domTransform = New FreeThreadedDOMDocument
Set domOutput = New DOMDocument
Set objTemplate = New XSLTemplate

Call domSource.Load(App.Path & "\test.xml")
Call domTransform.Load(App.Path & "\test.xsl")

Set objTemplate.stylesheet = domTransform
Set objProcessor = objTemplate.createProcessor()

objProcessor.input = domSource
objProcessor.output = domOutput
Call objProcessor.addParameter("EmpId", "1")
Call objProcessor.Transform

Call MsgBox(domOutput.xml)

在XSLT中使用参数使你可以再次使用相同的XSLT却得到不同的输出结果。通过VB实现这个功能意味着你的应用程序可以用XSLT来产生自定义的Web页,动态过滤XML文件,以及根据参数把XML转换为不同的格式。

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amteam.org | 021-51096826-112 | 在线联系
老孙的IT运维管理之道[原创]用户的BSM用户的IT业务管..

从企业实际的IT运营角度来看,BSM是推动IT与业务融合,实现、改善WCNG司IT管理和治理的最佳实践之一。

吕建伟 专栏和CIO问答软件项目实施管理

现实中很少能按照正规流程来的,所以只能把流程中的各个环节拆开,个个击破,以后就可以见招拆招了。

节能与优化IT 企业CIO过冬良策

当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良……

观08软件并购风潮 议09巨头何处生花

2008,似乎注定是不平静的一年。有人说2008是并购年。业内人士表示,在全球软件行业,并购一直是大企业谋求做大做强的捷径之一,包括甲骨文、SAP,微软等全球软件巨头都为了扩大自己……