1

私の質問はばかげているか、情報が不足している可能性があります。申し訳ありません。必要と思われる限り、説明的になるよう努めます。

多数の xml があり、おそらく数百のスキーマ (異なるルート/要素名、異なる属性) があります。コードを書いている間、多くの開発者はこれらの xml に誤って混合コンテンツを追加しました (私たちにとって唯一のスキーマは ---> "混合コンテンツなし" です)。

xml ファイルを再インデントしたいのですが、上記の混合コンテンツが問題を引き起こしています。私たちが持っている唯一の xml パーサー/ユーティリティは xmllint です (いくつかの制約のために他のユーティリティを取得することはできません)。

例えば:

<A>
mixed data<B>
<C>text data</C>
</B>
      <D>new data</D>
</A>

実行後 (xmllint に追加したオプションはランダムに試行するだけです)

xmllint --recover --encode "ISO-8859-1" --format data.xml

私は以下を取得します:

<?xml version="1.0" encoding="ISO-8859-1"?>
<A>
mixed data<B><C>text data</C></B>
      <D>new data</D>
</A>

xml aer の要素には何百もの可能な値があるため、例としてタグを AD として説明しました。次の 2 つのヘルプが必要です。

1) コンテンツが混在しているファイルを見つけます。たくさんのファイルがあるので、bash スクリプト (またはそのようなスクリプト) を使用することをお勧めします。2) xml ファイルを適切にフォーマットする方法。

どんな助けでも大歓迎です。私はしばらくこれについて頭を悩ませてきました.このような非常に単純に見えるものは、私にとって非常に難しいことが証明されています. 私たちのシステムに関するその他の情報は、Unix を使用しており、必要に応じて perl の助けを借りることができるということです。(しかし、Twig や LibXML::PrettyPrint はありません)

4

0 に答える 0