XPath 元素选择,其中包含带有重音符号或字符的文本



我想使用 XPath(Symfony Dom Crawler(选择一个元素/div 标签:

$element->filterXPath('//span[text() = "SOMEtext"]')->text();

如果字符串中没有特殊字符,它可以正常工作。如果字符串包含重音或字符,例如:Prénomexpérienceà toi等,则不起作用。

$element->filterXPath('//span[text() = "Référence"]')->text();给了我一个错误。

有没有办法过滤掉非英文文本?

我尝试了许多组合将文本转换为 unicode 字符串,但总是失败。

Référence
Référence
Ru00E9fu00E9rence
Ru{00E9}fu{00E9}rence
R0E9 f0E9 rence
R%C3%A9f%C3%A9rence
RU+00E9fU+00E9rence
R0xE9f0xE9rence

你没有指定你正在使用哪个 XPath 实现,而且因为 filterXpath 在 PHP 中是非标准的,所以我要检查的第一件事是编码。保存 PHP 脚本的编码是否与对象预期的编码相同?

我要尝试的第二件事是使用 DOMDocument 的标准 XPath 实现,但还有其他实现。

$oDom = (new DOMImplementation())->createDocument(NULL, '');
// import your DOM here
$XPath = new DOMXPath($oDom);
$XPath->query('//span[text() = "Référence"')->item(0);

相关内容

  • 没有找到相关文章

最新更新