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' < '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了.什么阻碍了你? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |