私はデータ移行に取り組んでおり、html を解析して xml にエクスポートしています。もちろん、html は xml に入るときにエスケープされますが、解析が適切に行われていることを確認するために、角かっこをデコードして xml 内の読み取り可能な html タグを取得しています。ただし、タグはすべて一緒に実行されており、まだあまり読みやすくありません。
私が持っているタグ構造を単純にインデントできるものはありますか? 有効なxmlでもhtmlでもありません。xmllint --format
とを試しましxmllint --htmlout
たが、どちらも異なるポイントでチョークします。
これを手動で行うことを避けることはできますか?
以下に小さな例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result><node><title>This would be the title</title><uri>/path/filename.jpg</uri><alt>Alt tag data</alt><body><p>Some text goes here.</body></node></result>
実際のデータでは、内部の html タグ<body>
はすべて and にエスケープされて<
い>
ますが、解析が正しく機能しているかどうかを確認するのは難しすぎました。そのため、検索と置換を使用して、それらを同等のブラケットに変更しました。しかし、まだインデントされていないため、読みにくいです。
と の両方がtidy
、終了タグxmllint
の欠落について不平を言っています。<p>
このデータには、多数の欠落または不一致のタグがあります。これが有効な html または xml ではないことは理解していますが、後で行う html のクリーンアップです。この時点で、html が適切な場所で解析されていることを確認する必要があります。改行やインデントはありません。
上記の例を修正するには、タグを手動で削除または閉じることができ<p>
ますが、実際のデータには多くの破損があり、書式設定のために解析するためだけにタグを修正するのは簡単ではありません。この段階では、手作業によるマッサージを避け、自動化された方法で行うようにしています.
たとえば、この 1 つのファイルについて、tidy は 65 の警告と 778 のエラーを報告します。それらをすべて手作業で修正するのは時間の無駄です。非厳密な方法でインデントでき、一致しないタグを気にしないものが必要です。