输入字符串是:
<input type="hidden" value="CZĘŚCI"" name="userlogin">
<input type="hidden" value="CZĘŚCI'" name="userlogin">
如果我尝试使用 simplexml_load_string 处理此问题,则会返回解析错误。
警告:simplexml_load_string():实体:第1行:解析器错误
我知道这是不正确的HTML,我应该使用htmlspecialchars
或其他函数来解决html问题,但字符串来自外部来源,我无法控制它。我需要解析带有错误的HTML。
如何处理这个并获得这个元素的价值?
答案 0 :(得分:0)
SimpleXml只能解析有效的XML。您正在尝试解析无效的HTML。
您可以使用DOM来实现您的目标:
$string = <<< HTML
<input type="hidden" value="CZĘŚCI'" name="userlogin">
HTML;
libxml_use_internal_errors(true);
$dom = new DOMDocument;
$dom->loadHTML('<?xml version="1.0" encoding="UTF-8"?>' . $string);
echo $dom->getElementsByTagName('input')->item(0)->getAttribute("value");
libxml_use_internal_errors(false);