如何保持<br/>在php中使用Dom来解析html文档时


how to keep <br/> tags when using Dom in php to parse html document?

我在php中使用dom通过$node->nodeValue检索div的内容。这个div在其内容中有许多<br/>标签,但在我将其存储在数据库中并在浏览器中输出后,所有<br/>标签都更改为空白。我想保持<br/>标签,我如何实现这一点?

nodeValue只返回文本数据(如果在元素节点上使用)。使用saveXML()

检索内容
$node->ownerDocument->saveXML($node);

DOMNode::nodeValue将只返回文本内容。

由于<br />是子元素,它将不会返回。

你最好的选择是

  1. 创建一个空的临时字符串
  2. 遍历$node
  3. 中的所有子节点
  4. 使用DOMDocument::saveHTML()
  5. 获取每个子节点的标记
  6. 将此字符串与您的临时字符串连接
  7. 将temp字符串保存到数据库

像这样- http://www.php.net/manual/en/book.dom.php#89718

假设您正在使用MySQL(因为您没有说),请确保使用mysql_real_escape_string函数。molle博士的回答可能会提供进一步的见解。

http://php.net/manual/en/function.mysql-real-escape-string.php