1

皆さんがお役に立てば幸いです。テキスト内に複数のxml宣言を含む文字列があります(XMLに似ていますが、アプリケーションはそれをバイナリ文字列として扱います)。これらの宣言を削除したいと思います。例えば

<?xml version="1.0" encoding="UTF-8"?>
<Parent>
    <?xml version="1.0" encoding="UTF-8"?>
    <Child1>
    .
    .
    </Child1>
    <?xml version="1.0" encoding="UTF-8"?>
    <Child2>
    .
    .
    </Child2>
</Parent>

この場合、omit-xml-declaration = "yes"はドキュメント内の宣言に到達できないため、機能しません。XSLTを使用して最初の宣言以外の宣言をエスケープする方法はありますか?私はおそらくこれらをどうにかしてCDATAすることができます(これがうまくいくかどうかはわかりませんが)

4

1 に答える 1

0

これは XSLT では実現できません。

理由: パーサーには有効な XML が必要です。また、リストしたサンプル コードは有効な XML ではありません。

解決:

  1. そのような種類の XML を生成しているソース コードを変更できる場合は、それを修正してください。2 番目の提案はお勧めしません。または、選択の余地がない場合は
  2. 文字列操作または正規表現を使用して、C# などのホスト プログラムまたは Java を使用して、この宣言部分を null/空白に置き換えて、XML を変更します。文字列パターンはコード全体で常に共通であるため、RegEx の方が便利です。
于 2012-12-21T08:47:20.603 に答える