我想使用PHP Tidy在将xml加载到DomDocument之前确保它是有效的。
但是,我不希望Tidy改变我的格式 - 我只想让它修复诸如不平衡的标签等问题。
问题的示例可在此页面上查看:http://www.tek-tips.com/viewthread.cfm?qid=1654452
下面是我的一个示例。
输入:<ex><context>собр<stress>а</stress>ние</context> акцион<stress>е</stress>ров — <stress>aa</stress>ndeelhoudersvergadering</ex>
(这已经是有效的xml了)
期望的输出:<ex><context>собр<stress>а</stress>ние</context> акцион<stress>е</stress>ров — <stress>aa</stress>ndeelhoudersvergadering</ex>
(在</context>
和актион
之间有断开的空格)
实际输出:
<ex>
<context>собр
<stress>а</stress>ние</context>акцион
<stress>е</stress>ров —
<stress>aa</stress>ndeelhoudersvergadering</ex>
我的代码是:
</context>актион
它移除了</context>
和актион
之间的空格,这会导致文本无法阅读,并在每个标记后插入了新行。
function TidyXml($inputXml)
{
$config = array(
'indent' => false,
'output-xml' => true,
'input-xml' => true,
);
$tidy = new tidy();
$tidy->parseString($inputXml, $config, 'utf8');
$tidy->cleanRepair();
$cleanXml = tidy_get_output($tidy);
return $cleanXml;
}
我尝试了几个选项,但没有成功。
'input-xml' => true
之外的所有设置(因为否则它会输出完整的HTML文档)。然而,这并没有帮助。我还尝试设置'output-xml' => false
,但这也没有帮助。有什么办法可以防止剥离/修剪和格式化吗? - hansmbakker<context><abbr>geog.</abbr>
应该被修复为<context><abr>geog.</abr></context>
以使标签平衡。 - hansmbakker