PHPのTidyを使用して、XMLを有効にしてからDomDocumentにロードする前に使用したいと思います。PHP Tidyは空白を削除して改行を挿入します
しかし、私は私の書式に何かを変更する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>
とактион
の間のスペースは、テキストを読むことができなくなり、新しい各タグの後の行)
私のコードは次のとおりです。
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;
}
私はいくつかのオプションを変更しようとしたが、成功しませんでした。
のhttpを追加することからTidyのを防ぐために、HTMLに代わる実行することができました。 sourceforge.net/docs/quickref.html#output-xml – hakre
PHPの単純なHTML DOMパーサーは、ほとんどの場合よりはるかに寛大なパーサーです。 http://simplehtmldom.sourceforge.net/ – Petah
@hakre '' input-xml '=> true'以外のすべての設定を削除しました(そうしないと完全なHTML文書を出力しないので必要です)。しかし、それは役に立たなかった。また '' output-xml '=> false'を設定しようとしましたが、これは役に立ちませんでした。ストリッピング/トリミングや書式設定を防ぐために何かできますか? –