Php simplexml\u load\u字符串是否可以处理<;br>;标签?
我有一个例子,我试图解析一大块HTML,其中包含Php simplexml\u load\u字符串是否可以处理<;br>;标签?,php,xml,simplexml,Php,Xml,Simplexml,我有一个例子,我试图解析一大块HTML,其中包含标记——也就是说,不是。simplexml\u load\u字符串正确地处理,但抛出警告(并无法返回解析): simplexml_load_string(): Entity: line 1: parser error : Opening and ending tag mismatch: br line 1 and div [warning] simplexml_load_string(): <div class='dummy_root'>
标记——也就是说,不是
。simplexml\u load\u字符串正确地处理
,但抛出警告(并无法返回解析):
simplexml_load_string(): Entity: line 1: parser error : Opening and ending tag mismatch: br line 1 and div [warning]
simplexml_load_string(): <div class='dummy_root'><div>Basic text.<br> More text.</div></div>
simplexml\u load\u string():实体:第1行:解析器错误:开始和结束标记不匹配:br第1行和div[警告]
simplexml_load_string():基本文本。
更多文本。
我不是那个把
写进文本的人,所以我必须找到一种方法来处理它。我当然可以编写某种预处理/清理/文本咀嚼代码,用
s替换
s,但我想我应该检查一下这里是否有“更好”的事情要做。有什么想法吗?谢谢 您可以做的是替换/删除
标记,如下所示:
simplexml_load_string(str_replace("<br>", "", $string));
simplexml\u load\u字符串(str\u替换(“
”,“,$string));
尽管SimpleXML扩展没有HTML解析模式,但DOM扩展有,解析后,它们共享相同的内部代码
因此,您可以像这样解析文档:
DOMDocument
对象结果是一个SimpleXML对象,可以正常使用。
是HTML,而不是XML,XML需要关闭元素。你能用这个文件吗?dom的起点,或者使用简单的html而不是简单的xml。是的,这就是我的想法,或者类似的东西。我有点觉得权宜之计胜过了一个更深层次的、可以说更好的解决方案(比如探索htmlsimpledom),但这似乎处理得很好。谢谢大家。
$dom = new DOMDocument;
$dom->loadHTML($html);
$sxml = simplexml_import_dom($dom);