我有一个xml文件,可以使用任何语言(芬兰语,意大利语,瑞典语,荷兰语)我使用标题保存了xml
<?xml version="1.0" encoding="ISO-8859-1"?>
保存的xml包含特殊字符和一些html代码
⁏ for single code etc.
现在我想使用此xml作为源提供搜索文本功能,如下所示
$xml->xpath("//page[data[contains(., '".strtoupper($string)."')]]")
当我尝试将$ search_text作为变量提供时,从PHP开始,它不匹配这些⁏
并产生错误
例如单词 nell'Esercizio 在xml中为nell’Esercizio
,因此我的搜索结果为xpath为空。
我尝试了htmlentities和htmlspecialchars但没有运气。对于特殊字符,我尝试了utf8_encode(),utf8_decode()组合并且它有效(对于芬兰语)但是对于这些html字符,它失败了。
通过php应用程序在diff语言的xml文件中搜索文本的正确方法应该是什么?
答案 0 :(得分:0)
Xpath表达式必须是UTF-8,文档的编码不相关。 DOM使用UTF-8并在加载/保存时转换。我认为你的问题是strtoupper()
。您需要使用unicode save transliterations。