Php XPath/XML小写查询方法

Php XPath/XML小写查询方法,php,xml,xpath,Php,Xml,Xpath,下面的Xpath和PHP代码检查XML文件中任何“name”元素中的文本是否包含字符串“desk”(参见第二行代码)。如果Xpath搜索字符串是“Desk”(大写为D),它将检索第一个XML名称元素中的文本,即“Desktop”。但是,由于Xpath搜索字符串是“desk”(带有小写字母d),因此无法检索任何内容 有没有一种方法可以对其进行编码,以便Xpath搜索字符串“desk”(小写d)可以从XML文件的name元素中检索“Desktop”(大写d)?或者有没有办法使查询不区分大小写 以下是

下面的Xpath和PHP代码检查XML文件中任何“name”元素中的文本是否包含字符串“desk”(参见第二行代码)。如果Xpath搜索字符串是“Desk”(大写为D),它将检索第一个XML名称元素中的文本,即“Desktop”。但是,由于Xpath搜索字符串是“desk”(带有小写字母d),因此无法检索任何内容

有没有一种方法可以对其进行编码,以便Xpath搜索字符串“desk”(小写d)可以从XML文件的name元素中检索“Desktop”(大写d)?或者有没有办法使查询不区分大小写

以下是XPath和PHP代码:

$xmldoc = simplexml_load_file("products.xml");
$query = $xmldoc->xpath('/products/product[contains(name,"desk")]');  
foreach($query as $Products) {
echo $Products->name . " ";
echo $Products->price . "<br>";
}
$xmldoc=simplexml\u load\u文件(“products.xml”);
$query=$xmldoc->xpath('/products/product[contains(name,“desk”)]');
foreach($Products查询){
echo$Products->name.“;
echo$产品->价格。“
”; }
以下是XML文件(名为product.XML):


桌面
499.99
百思买
手锯
99.99
洛斯
谢谢

试试这个

$query = $xmldoc->xpath('/products/product[contains(name,"_esk")]');  
如果你使用

$query = $xmldoc->xpath('/products/product[contains(translate(name, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz"),"desk")]');
至少对于translate调用转换的字母,您有一个不区分大小写的比较。

可能重复的
$query = $xmldoc->xpath('/products/product[contains(translate(name, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz"),"desk")]');