让 simplexml 理解没有自闭合标签的输入?
Getting simplexml to understand input that have no self closing tags?
我需要一个 HTML table,包含自关闭输入标签,从客户端发送到服务器并将其解析为 simpleXML,以便将其转换为 Excel 文件通过 PHPExcel.
问题是浏览器正在从输入标签中剥离自关闭标签,这反过来在我将其传递给 simplexml_load_string 函数时产生错误。
$table = '<table><tr><td><input name="test" value="1" type="checkbox" ></td></tr></table>';
$xml = simplexml_load_string($table);
如果我可以阻止浏览器更改以下代码:
<input name="test" value="1" type="checkbox" />
至:
<input name="test" value="1" type="checkbox" >
这会解决我的问题,但我不知道或似乎无法找到如何做到这一点?
有没有办法允许 simplexml_load_string 接受没有自关闭标签的输入,或者即使我遗漏了其他内容?
有一个技巧:the DOM extension can parse HTML, including unclosed tags like you have here; and SimpleXML can "import" a DOM object(实际上没有重新解析任何东西,因为它们在底层使用相同的内存结构)。
它应该像这样简单:
$dom = new DOMDocument;
$dom->loadHTML($html);
$sx = simplexml_import_dom($dom);
我需要一个 HTML table,包含自关闭输入标签,从客户端发送到服务器并将其解析为 simpleXML,以便将其转换为 Excel 文件通过 PHPExcel.
问题是浏览器正在从输入标签中剥离自关闭标签,这反过来在我将其传递给 simplexml_load_string 函数时产生错误。
$table = '<table><tr><td><input name="test" value="1" type="checkbox" ></td></tr></table>';
$xml = simplexml_load_string($table);
如果我可以阻止浏览器更改以下代码:
<input name="test" value="1" type="checkbox" />
至:
<input name="test" value="1" type="checkbox" >
这会解决我的问题,但我不知道或似乎无法找到如何做到这一点?
有没有办法允许 simplexml_load_string 接受没有自关闭标签的输入,或者即使我遗漏了其他内容?
有一个技巧:the DOM extension can parse HTML, including unclosed tags like you have here; and SimpleXML can "import" a DOM object(实际上没有重新解析任何东西,因为它们在底层使用相同的内存结构)。
它应该像这样简单:
$dom = new DOMDocument;
$dom->loadHTML($html);
$sx = simplexml_import_dom($dom);