Xpath&下面的PHP代码检查XML文件中任何“name”元素中的文本是否包含字符串“desk”(参见第二行代码)。如果Xpath搜索字符串是“Desk”(带有大写D),它将检索第一个XML名称元素“Desktop”中的文本。但由于Xpath搜索字符串是“桌面”(使用小写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>";
}
这是XML文件(名为product.xml):
<products>
<product type="Electronics">
<name>Desktop</name>
<price>499.99</price>
<store>Best Buy</store>
</product>
<product type="Hardware">
<name>Hand Saw</name>
<price>99.99</price>
<store>Lowes</store>
</product>
</products>
谢谢!
答案 0 :(得分:0)
试试这个..
$query = $xmldoc->xpath('/products/product[contains(name,"_esk")]');
答案 1 :(得分:0)
如果您使用
$query = $xmldoc->xpath('/products/product[contains(translate(name, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz"),"desk")]');
你有一个不区分大小写的比较,至少对于翻译调用转换的字母。