加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何将字符串与Xpath 1.0进行比较?

发布时间:2020-12-13 16:30:09 所属栏目:PHP教程 来源:网络整理
导读:我正在体验的问题. Xpath 1.0中字符串的运算符. 这个简单的Xpath表达式 'A' 'B' (or the equivalent 'A' lt; 'B') 我在libxslt(这是一个XSLT 1.0引擎)的xslt运行中没有评估为true. 我检查了XML Spy,它允许在1.0和2.0中测试Xpath表达式,果然,在Xpath 2.0中它
我正在体验<的问题. Xpath 1.0中字符串的运算符. 这个简单的Xpath表达式
'A' < 'B' (or the equivalent 'A' &lt; 'B')

我在libxslt(这是一个XSLT 1.0引擎)的xslt运行中没有评估为true.

我检查了XML Spy,它允许在1.0和2.0中测试Xpath表达式,果然,在Xpath 2.0中它的计算结果为true,但在Xpath 1.0中,它的计算结果为false!

这是Xpath 1.0中的错误吗?

我应该使用什么其他表达式来比较两个字符串/字符的字母顺序?请注意,compare()函数不会这样做,因为这是一个XSLT 2.0函数.

是的,这是XPath 1.0的限制. (我不认为将你不喜欢的限制称为“错误”是合理的,尽管很明显XPath 2.0的设计者同意你这是一个不受欢迎的限制).

您已经标记了问题“xslt”,因此您可以在XSLT级别解决问题,至少在您的处理器具有节点集扩展时:

<xsl:variable name="nodes">
  <node><xsl:value-of select="$A"/></node>
  <node><xsl:value-of select="$B"/></node>
</xsl:variable>

<xsl:for-each select="exslt:node-set($nodes)/*">
  <xsl:sort select="."/>
  <xsl:if test="position()=1 and .=$A">A comes first!</xsl:if>
</xsl:for-each>

但也许是时候转向2.0了.什么阻碍了你?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读