Xslt 正确使用启动功能

Xslt 正确使用启动功能,xslt,startswith,Xslt,Startswith,下面是用于触发和发送电子邮件的XSLT 我需要发送电子邮件时,无论是事件形式或一个以“演示”开头的产品是订购 目前,当我从电子邮件中订购活动时,邮件会被发送出去,但如果我订购的演示文稿电子邮件不会发送,我认为这是因为我没有正确使用Start with Function 有人能看到这个问题吗 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-

下面是用于触发和发送电子邮件的XSLT

我需要发送电子邮件时,无论是事件形式或一个以“演示”开头的产品是订购

目前,当我从电子邮件中订购活动时,邮件会被发送出去,但如果我订购的演示文稿电子邮件不会发送,我认为这是因为我没有正确使用Start with Function

有人能看到这个问题吗

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt">
  <xsl:output method="html" />
  <xsl:variable name="DateOrderSubmitted" select="//Sqls/OrderProduct/Row/DateOrderSubmitted" />
  <xsl:template match="/">
    <xsl:if test="//Sqls/OrderProduct/Row/ProductName != 'Event Form' and //Sqls/OrderProduct/Row/ProductName != starts-with(ProductName, 'Presentation')">
      <xsl:message terminate="yes">
Error: email terminated by xsl test
</xsl:message>
    </xsl:if>
Hello,<br />
    <br />
The output file of order product # can be downloaded <a>
    <xsl:attribute name="href">http://www.cpiyourway.co.uk/uStore/Controls/SDK/OrderOutputProxy.ashx?token=<xsl:value-of select="//Sqls/OrderProduct/Row/OutputToken" />
    </xsl:attribute>here</a> (when available).
</xsl:template>
  </xsl:stylesheet>

错误:电子邮件被xsl测试终止
你好,

订单产品#的输出文件可以下载(如果可用)。
如果没有看到XML,很难给出准确的答案,但与其写这个,不如

//Sqls/OrderProduct/Row/ProductName != starts-with(ProductName, 'Presentation')
您可能需要的语法是

//Sqls/OrderProduct/Row[not(starts-with(ProductName, 'Presentation'))]
但是,完整表达式也在检查“EventName”,因此这两个表达式确实需要合并为一个,如下所示:

<xsl:if test="//Sqls/OrderProduct/Row[ProductName != 'Event Form' and not(starts-with(ProductName, 'Presentation'))]">

编辑:或者您可能需要它,具体取决于您试图实现的逻辑

<xsl:if test="not(//Sqls/OrderProduct/Row[ProductName = 'Event Form' or starts-with(ProductName, 'Presentation')])">


您能否编辑您的问题以显示输入XML的示例?谢谢抱歉,Tim,不知道你的意思,这是在我们的xmpie软件上设置的。因为XSLT用于将XML转换为另一种格式(本例中为HTML),所以在编写任何XSLT之前,您需要知道XML的外观。例如,您如何知道编写
Sqls/OrderProduct/Row/ProductName
?它已经提供了,我只是试图更改提供的代码,以允许新产品请求调试帮助(“此代码为什么不起作用?”)必须包含所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。嗨,Tim,这不起作用,还有其他建议吗?或者你能不能建议我做些什么,因为我不能提供XML?我已经在我的答案中添加了一个编辑,尽管这只是一个没有看到XML的猜测。直到OP要求添加XML,从而得到一个合适的答案,这是一个尽可能好的答案——我认为这是理所当然的慷慨。