Php 匹配xml条目和显示的xslt正则表达式
我知道这对你们中的一些人来说很简单 我所要做的就是浏览xml文档并打印出包含特定字符串片段的xml条目。字符串值被传递给xslt并查看xml文档,如果一个单词以字符串表达式开头,它将显示它 我对以下消息有什么错误 MM_XSLTransform错误:在 转换:“matches()”是一个 未知的XSLT函数 这是我的代码示例Php 匹配xml条目和显示的xslt正则表达式,php,xml,xslt,Php,Xml,Xslt,我知道这对你们中的一些人来说很简单 我所要做的就是浏览xml文档并打印出包含特定字符串片段的xml条目。字符串值被传递给xslt并查看xml文档,如果一个单词以字符串表达式开头,它将显示它 我对以下消息有什么错误 MM_XSLTransform错误:在 转换:“matches()”是一个 未知的XSLT函数 这是我的代码示例 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="html" encoding="utf-8"/>
<xsl:param name="qString" />
<xsl:template match="/">
<xsl:for-each select="Products/Product">
<xsl:if test="matches('/OldPN','$qString')">
<xsl:value-of select="OldPN" /> - <xsl:value-of select="OldName" />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
-
有什么想法吗?非常感谢您的帮助 如果您使用的是.NET,那么可以通过从宿主程序注入您自己的IL方法来扩展xslt。通过这种方式添加正则表达式支持将很容易。正则表达式的
匹配
函数在XSLT2.0中是新的,您的xslt处理器可能还不支持它。如果可以使用普通字符串而不是正则表达式,则可以尝试使用包含
或以
开头
此外,在您的示例中,第二个参数不能用引号括起来,因为这样您将匹配文本字符串“$qString”,而不是此参数的值。基础libxslt当前仅支持(e)xslt 1.0。
但是您可以注册php函数,例如使其可用
请参见感谢您提供的有关报价的信息。我有点认为,在我把“未知XSLT函数”排除在外之后,情况会是这样。我认为我的问题是缺乏对2.0的支持。“Contains”可能会按照您的建议工作,但除此之外,它可能会返回到绘图板以获得另一个解决方案。除了需要使用XSLT 2.0处理器运行此转换之外,您还应该调用类似
matches(OldPN,$qString)
的函数。如果您没有访问XSLT2.0的权限,也许可以在XSLT1.0中完成。您应该发布您的输入示例和参数qString
示例。