获取simplexml以了解没有自闭标签的输入?

时间:2016-09-20 16:27:37

标签: xml dom xml-parsing simplexml phpexcel

我需要获取一个包含自闭输入标记的HTML表,该表从客户端发布到服务器并将其解析为simpleXML,以便通过PHPExcel将其转换为Excel文件。

问题是浏览器正在从输入标签中删除自闭项标记,这会在我将其传递给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接受没有自我结束标记的输入,或者即使还有其他我缺少的东西?

http://phpfiddle.org/main/code/bw3x-zvtw

1 个答案:

答案 0 :(得分:1)

有一个技巧:the DOM extension can parse HTML,包括你在这里的非闭合标签;和SimpleXML can "import" a DOM object(实际上没有重新解析任何东西,因为它们在下面使用相同的内存结构)。

它应该如此简单:

$dom = new DOMDocument;
$dom->loadHTML($html);
$sx = simplexml_import_dom($dom);