【问题标题】:Getting simplexml to understand input that have no self closing tags?让 simplexml 理解没有自闭标签的输入?
【发布时间】:2016-09-20 16:27:36
【问题描述】:

我需要获取一个包含自闭合输入标记的 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

【问题讨论】:

    标签: xml dom xml-parsing simplexml phpexcel


    【解决方案1】:

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

    应该很简单:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多