0

XML ファイルを解析し、冗長な要素をいくつか削除し、.xml を使用して残りを新しい XML ファイルに書き戻す小さなスクリプトを作成しました$xml->print_to_file();

エスケープされたタグのテキスト内の"二重引用符が現在は通常の二重引用符であることを除いて、すべて正常に機能します。escape_gtこの動作を防ぐための に似た構成が見つかりませんでした。二重引用符をエスケープしておくためのそのような構成または他の方法はありますか?

私の小枝の設定は次のようになります。

my $xml = XML::Twig->new(
    twig_handlers => {
        label => \&purge_file
    },
    pretty_print => 'indented',
    output_encoding => 'utf-8',
    escape_gt => 1
);
4

1 に答える 1

7

XML テキストで引用符をエスケープする理由はありません。二重引用符は、二重引用符で囲まれた属性値でのみエスケープする必要があり、XML::Twig がそれらをエスケープすることがわかると確信しています。


...しかし、XML::Twig のガッツをいじることで可能です:

XML::Twig::Elt::set_replaced_ents(qq{&<>"});  # "&" needs to be first.

これに反対することをお勧めします。

于 2012-02-09T09:35:14.910 に答える