我做了一个搜索函数来从XML文件中搜索产品。
问题是,我有包含撇号的 XML 内容。当我使用关键字accu搜索时,由于撇号,我没有得到任何结果。
这是我用来收集结果的路径:
$products = $xml->xpath("//products[contains(.,\"$keyword\")]");
每次$keyword都不同,具体取决于您搜索的位置。
我的 xml 如下所示:
<products>
<hoofdgroep>Gereedschappen</hoofdgroep>
<subgroep>Accugereedschap</subgroep>
<artikelgroep>Accu's voor accugereedschap</artikelgroep>
<artikelnummer>224975</artikelnummer>
<artikelnaam>accu bosch 9.6V 2.0ah</artikelnaam>
<merk>Bosch</merk>
<eenheid>st</eenheid>
</products>
请帮忙!
表达式完全没问题。在发送查询之前,您必须添加一些转义或其他内容,例如 accu's
,或者在搜索关键字或文档中不使用其他字符。引号、重音和撇号经常混淆。
不要忘记考虑引用双反斜杠以防止注入攻击!顺便说一下,XPath 允许字符串使用单引号和双引号,因此您也可以在里面使用单引号而不是转义的双引号。