Xpath:将 'include everything' 参数传递给 [starts-with(...)]
Xpath: pass an 'include everything' parameter to [starts-with(...)]
使用撒克逊 HE/Xpath 2
要通过 'BusinessType' 过滤我的 xml 企业列表文件,我将一个参数(即 "Restaurant" 或 "School")传递给 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。
starts-with
函数 https://www.w3.org/TR/xquery-operators/#func-starts-with 仅适用于字符串,不适用于正则表达式。然而,一个空序列或一个空字符串作为第二个参数意味着函数 returns true 所以你可以简单地定义 <xsl:param name="BusinessType" select="()"/>
然后,如果你不想过滤,你不设置参数并且谓词 starts-with(BusinessType,$BusinessType)
始终为真。
如果你想使用正则表达式,你需要使用 matches
函数,例如matches(BusinessType,$BusinessType)
如果将参数设置为 ^.*
.
,匹配任何起始字符的模式将是
使用撒克逊 HE/Xpath 2
要通过 'BusinessType' 过滤我的 xml 企业列表文件,我将一个参数(即 "Restaurant" 或 "School")传递给 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。
starts-with
函数 https://www.w3.org/TR/xquery-operators/#func-starts-with 仅适用于字符串,不适用于正则表达式。然而,一个空序列或一个空字符串作为第二个参数意味着函数 returns true 所以你可以简单地定义 <xsl:param name="BusinessType" select="()"/>
然后,如果你不想过滤,你不设置参数并且谓词 starts-with(BusinessType,$BusinessType)
始终为真。
如果你想使用正则表达式,你需要使用 matches
函数,例如matches(BusinessType,$BusinessType)
如果将参数设置为 ^.*
.