如何从DomDocument :: saveHTML中删除换行符

时间:2013-09-30 10:24:46

标签: php xml dom xpath line-breaks

我正在使用XPath从我的DomDocument中获取一些段落。 这很好,并返回所需的数据。

问题在于:

foreach ($paragraph->childNodes as $child) {
    $node .= $paragraph->ownerDocument->saveHTML($child);
}

如果有一个初始换行符,这将是keept,我想摆脱所有的换行符。

我试过:

$node = trim($node); // Does not work

然后:

$breaks = array("\r\n", "\n", "\r");
$node = str_replace($breaks, " ", $node); // Doesn't work

我也尝试过:

$paragraph->ownerDocument->formatOutput = false;
$paragraph->ownerDocument->preserveWhiteSpace = false;

没用。

关于如何摆脱这些换行符的任何想法?

提前谢谢。

修改

以下是$ node输入的示例:

<b>Keywords: </b>marine fungus; sediment; anthranilic acid; <i>Penicillium
 paneum</i>; cytotoxicity

显然,有问题的角色是
这个特殊角色是什么?

3 个答案:

答案 0 :(得分:2)

$node = preg_replace(array('/\r/', '/\n/'), '', $node);

这样就可以了。

答案 1 :(得分:1)

尝试preg_replace

   $string =  preg_replace("#<br\s*/?>#i", "", $string);

或尝试

preg_replace( "/\r|\n/", "", $yourString);

答案 2 :(得分:1)

显然,正是字符&#13;导致了te linebreak。我从来没有听说过这个特殊角色,也不知道它是如何产生的。

所以基本上,我要做的就是更换它。