Php 不破坏有效性的XML中的HTML

Php 不破坏有效性的XML中的HTML,php,html,xml,Php,Html,Xml,我希望有人能帮我解决以下问题。因为我在砖墙前呆了一天 我试图从在线商店数据库中获取产品描述,并生成一个XML提要。 问题在于描述包含HTML,因此在浏览器中查看时XML会中断 这是代码行:- echo '<DESCRIPTION>' . $row['products_description'] . '</DESCRIPTION>'; echo“”$第[“产品描述”行]; 我尝试了以下方法:- echo '<DESCRIPTION><![C

我希望有人能帮我解决以下问题。因为我在砖墙前呆了一天

我试图从在线商店数据库中获取产品描述,并生成一个XML提要。 问题在于描述包含HTML,因此在浏览器中查看时XML会中断

这是代码行:-

echo    '<DESCRIPTION>' . $row['products_description'] . '</DESCRIPTION>';
echo“”$第[“产品描述”行];
我尝试了以下方法:-

echo    '<DESCRIPTION><![CDATA[' . $row['products_description'] . ']]></DESCRIPTION>';   
echo';
当我查看输出时,它首先破坏XML

<BR>

我知道PHP中的htmlentities,但这不起作用,因为我从另一家商店提取XML来导入描述,当导入回PHP时,它们不会正确显示

我希望有人能帮忙。感谢您抽出时间先查看

整理HTML

$config = array(
  'indent'         => true,
  'output-xhtml'   => true,
  'wrap'           => 200);

$tidy = new Tidy();
$tidy->parseString($row['products_description'], $config, 'utf8');
$tidy->cleanRepair();

echo    '<DESCRIPTION>' . $tidy. '</DESCRIPTION>';
$config=array(
“缩进”=>true,
“输出xhtml”=>true,
“包裹”=>200);
$tidy=新的tidy();
$tidy->parseString($row['products\u description'],$config,'utf8');
$tidy->cleanRepair();
回显“”$整洁",;

您需要安装才能工作。

您能提供生成的HTML吗?您的XML使用哪种DTD/Shema?脚本生成一个descriptions.XML当您说使用CDATA不起作用时,您的意思是什么?什么不起作用?也许实体也需要被转义。您可以共享HTML吗?您的代码生成了一个错误PHP致命错误:在第393I行的xmlbuilder.PHP中找不到类“tidy”,我输入了一个拼写错误并编辑了答案以修复它。我还澄清了您需要为tidy启用扩展。