如何在ReleaseApprovalPendingEvent.xsl中获取发布定义变量值?
如何在ReleaseApprovalPendingEvent.xsl中获取发布定义变量值
我之前自定义Release Approval Pending邮件模板时也碰到过这个问题,其实通过XPath定位事件数据里的节点就能轻松拿到发布定义的变量值,具体操作如下:
- 找到变量的存储节点:发布定义里的自定义变量会被放在事件XML的
Release/Variables节点集合里,每个变量对应一个Variable子节点,里面包含Name(变量名称)和Value(变量值)两个子元素。 - 编写XPath表达式取值:假设你的变量名为
MyCustomVar,直接用这段代码就能取出它的值:<xsl:value-of select="/Event/Release/Variables/Variable[Name='MyCustomVar']/Value"/> - 处理命名空间问题:如果你的事件XML带有默认命名空间(比如VS Release Management的标准命名空间),需要先在XSL样式表顶部声明命名空间前缀,再在XPath里使用:
之后调用变量时加上前缀即可:<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rm="http://schemas.microsoft.com/VisualStudio/2010/TeamFoundation/Deployment/ReleaseManagement/EventModel"><xsl:value-of select="/rm:Event/rm:Release/rm:Variables/rm:Variable[rm:Name='MyCustomVar']/rm:Value"/> - 确认节点结构(避坑技巧):如果不确定变量的具体路径,可以手动触发一次审批事件,捕获原始的XML事件数据(比如通过系统事件日志或者调试工具),直接查看节点层级,这样能避免写错路径。
举个简单的实际场景例子,要是你想在邮件正文里展示自定义变量TargetEnvironment的值,代码大概是这样的:
<p>本次发布目标环境:<xsl:value-of select="/Event/Release/Variables/Variable[Name='TargetEnvironment']/Value"/></p>
内容的提问来源于stack exchange,提问作者Yogesh Yadav
相关产品推荐
相关产品推荐

