使用Saxon HE / Xpath 2
要通过'BusinessType'过滤我的商家列表的xml文件,我将参数(即“餐馆”或“学校”)传递给xsl文件:
"java.exe" -jar "saxon9he.jar" -s:FHRS.xml -xsl:FHRS.xsl BusinessType="Restaurant"
BusinessType类别名称很长,所以要保存输入我将参数传递给starts-with
:
<xsl:param name="BusinessType"/>
<xsl:variable name="ID_New" select="//Details[starts-with(BusinessType,$BusinessType)]/FHRSID"/>
这只是一个例子。在xsl例程中多次使用相同的格式。
是否可以将'return everything'通配符参数传递给$ BusinessType?我试过了*
和.*
。我不熟悉RegEx。
答案 0 :(得分:1)
starts-with
函数https://www.w3.org/TR/xquery-operators/#func-starts-with仅适用于字符串,不适用于正则表达式。然而,作为第二个参数的空序列或空字符串意味着函数返回true,因此您可以简单地定义<xsl:param name="BusinessType" select="()"/>
然后,如果您不想过滤,则不要设置参数谓词starts-with(BusinessType,$BusinessType)
总是正确的。
如果您想使用正则表达式,则需要使用matches
函数,例如matches(BusinessType,$BusinessType)
如果您将参数设置为^.*
,则匹配任何起始字符的模式。