搜索函数 xml xpath,其中包含包含撇号的变量



我做了一个搜索函数来从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 允许字符串使用单引号和双引号,因此您也可以在里面使用单引号而不是转义的双引号。

最新更新