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

前端之家收集整理的这篇文章主要介绍了php – 如何将字符串与Xpath 1.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了.什么阻碍了你?

猜你在找的PHP相关文章