在php中使用Dom来解析html文件时如何保持标签?

时间:2011-05-03 02:53:38

标签: php dom

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

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

DOMNode::nodeValue只会返回文字内容。

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

你最好的选择是

  1. 创建一个空的临时字符串
  2. 遍历$node
  3. 中的所有子节点
  4. 使用DOMDocument::saveHTML()
  5. 获取每个子节点的标记
  6. 将此字符串与您的临时字符串
  7. 连接起来
  8. 将临时字符串保存到数据库
  9. 这样的事情 - http://www.php.net/manual/en/book.dom.php#89718

答案 2 :(得分:-1)

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

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