1

グーグルで検索して読んだのですが、答えが見つかりませんでした。

次のようなXMLファイルがあります。

<Patient PID="5" Disease="Flu" FavoriteBird="Norwegian Blue"/>
<Patient PID="33" Disease="Thripshaw's Disease" FavoriteBird="Dodo">
    <Contact Hospitalized="2013 05 30"/>
</Patient>

それぞれの患者さんの好きな鳥を匿名化したいです。つまり、次のような出力を生成します。

<Patient PID="5" Disease="Flu"/>
<Patient PID="33" Disease="Thripshaw's Disease">
    <Contact Hospitalized="2013 05 30"/>
</Patient>

最後のタイプの患者タグしか処理できないという事実を除いて、すべてが順調に進んでいます。つまり、要素が自己閉鎖していない場合です。

私の"endElement"-メソッドは単純に次のようになります

out.write(qName + "/n>")

また、最初のタイプのPatientタグに対して呼び出されることはありません。

私は何をしますか?タグが自動終了しているかどうかを確認する方法があれば、簡単に修正できます。

PS:最大数百メガバイトのサイズのファイルを変換する必要があります。代替ソリューションを提案するときは、このことを念頭に置いてください。

4

1 に答える 1

1

これは、間違いなく現在のSAX処理の数行ではなく、約5行のXSLTで実行でき、合法的なXMLで正しく機能します。

于 2012-07-31T11:09:26.817 に答える