Php 与XPath等价的类Mysql子句

Php 与XPath等价的类Mysql子句,php,mysql,xml,xslt,xpath,Php,Mysql,Xml,Xslt,Xpath,我需要以下sql查询的等效项: 选择所有电影,片名以“V”开头,后跟3个字符,然后空格后跟字符串,例如Van Helsing SELECT * FROM films WHERE title LIKE ="V__ %"; 如何在films/film/title这样的树中使用xpath 1.0表达式,xpath 1.0,因为我将使用php和xslt 谢谢如果空格后的字符串不能显示,可以吗?然后您可以使用: //title[starts-with(text(), 'V') and string-le

我需要以下sql查询的等效项:

选择所有电影,片名以“V”开头,后跟3个字符,然后空格后跟字符串,例如Van Helsing

SELECT * FROM films WHERE title LIKE ="V__ %";
如何在films/film/title这样的树中使用xpath 1.0表达式,xpath 1.0,因为我将使用php和xslt


谢谢

如果空格后的字符串不能显示,可以吗?然后您可以使用:

//title[starts-with(text(), 'V') and string-length(substring-before(text(), ' '))=3]
//title[starts-with(text(), 'V') and string-length(substring-before(text(), ' '))=3 and string-length(substring-after(text(), ' '))>0]
如果空格后有字符串很重要,则可以使用:

//title[starts-with(text(), 'V') and string-length(substring-before(text(), ' '))=3]
//title[starts-with(text(), 'V') and string-length(substring-before(text(), ' '))=3 and string-length(substring-after(text(), ' '))>0]

请注意,当前接受的答案错误地选择了与选择标准不匹配的元素-请参阅此答案的结尾

这里有一个正确的解决方案

使用:

其中,$vAlpha是由所有字母组成的字符串

这将选择字符串值为:

以字符V开头

它的开头三个字符都是字母

它的第四个字符是空格

它的第五个字符不是空格

它的所有字符都是字母或空格

基于XSLT的验证:

将此转换应用于以下XML文档时:

对上述XPath表达式进行求值,并将选定元素(在本例中只有一个)复制到输出:


请注意,当前接受的答案错误地选择了以下两个不匹配的元素:


谢谢,第二个表达式正是我想要的。Zatla00:请注意,当前接受的答案错误地选择了与选择条件不匹配的元素-请参阅我的答案的结尾。一如既往,太好了!但请注意,电影中SELECT*的xpath表达式,其中title LIKE=V_u;;这正是我的第一句话:@AlehDouhi:是的,两个答案都是基于对实际需要的具体解释。两者都可能更接近或不太接近OP的未表达要求。我希望这个答案提供了一些有用技术的示例,即使我对OP意图的猜测与他未表达的情况不完全相同。谢谢@DimitreNovatchev的回答,它给了我同样的结果,因为条目都写得很好,我是说电影名字。
<films>
 <film>
  <title>Van Helsing</title>
 </film>
 <film>
  <title>Van  Helsing</title>
 </film>
 <film>
  <title>Ban Helsing</title>
 </film>
 <film>
  <title>van Helsing</title>
 </film>
 <film>
  <title>Vann Helsing</title>
 </film>
 <film>
  <title>Van Helsing2</title>
 </film>
</films>
<title>Van Helsing</title>
<title>Van  Helsing</title>
<title>Van Helsing2</title>