1

我正在使用这个:

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

问题是,在我的原始文档中,$value
有一个换行符。

这是源 HTML 的一部分:

<html>
  <head>
    <meta http-equiv=Content-Type content="text/html; charset=utf-8">
    <meta name=Generator content="Microsoft Word 12 (filtered)">
      <title>SomeTitle</title>
  </head>
  <body lang=EN-US link=blue vlink=purple>
    <div class=WordSection1>
    <p class=3abstract><b>Abstract:</b> Five new anthranilic acid derivatives.</p>
  </body>
</html>

你以前遇到过这种情况吗?

4

2 回答 2

2

&#13;是“回车”的十进制 HTML 实体表示,因此在输出中非常好。

要输出实际的回车字符,请尝试将父文档的输出编码设置为 UTF-8: $paragraph->ownerDocument->encoding = 'UTF-8'

于 2013-10-07T08:56:11.600 回答
0

Alf 未能阐明如何定义通过new DOMDocument. 这反过来又删除了&#13;数字实体:

   $dom = new DOMDocument('1.0', 'UTF-8');//<?xml version="1.0" encoding="UTF-8"?>
   $dom->loadHTML($xml);
   $xml = $dom->saveXml($dom);

根据他的代码,我收到了如下错误:

尝试修改非对象的属性“ownerDocument”

或者,您可以使用以下字符串替换:

$xml = str_ireplace("\r\n", "\n", $xml);
于 2020-10-31T05:03:37.147 回答