2

次のような非常に単純な入力例の XML ファイルがあるとします。

<?xml version="1.0"?>
<content>
    <some />
</content>

元の構造の任意の場所に追加の要素を挿入して xml 構造を変更したり、要素を他のコンテンツに置き換えたりしたいと考えています。

EclipseLink MOXyを使用して何とかそれを達成できますか? たとえば、「some」を「someReplacement」に置き換えて、「whatever」を追加したいとします。

<?xml version="1.0"?>
<content>
    <someReplacement>
        <more>information</more>
    </someRepaclement>
    <whatever />
</content>

処理したい実際の XML はもっと複雑ですが、実際にはそのコンテンツの小さなサブセットしか扱っていないので、完全なファイルを複雑な Bean 構造にアンマーシャルしたり、要素の小さなセットに変更を加えたりすることは避けたいと考えています。構造全体をファイルにマーシャリングします。少なくとも複雑さについては知りたくありません。

これは、入力 XML スキーマが大きく異なる可能性があるためですが、私が注目する特定の要素はこれらのスキーマのそれぞれに存在します。したがって、たとえばバインディングファイルのようなものでXPathを適応させて、置換/挿入したい要素を指すようにするための解決策を見つけることが理想的です。

挿入/置換用に生成する要素は複雑であり、「手動で」作成したくないので、JDOM を使用しないことをお勧めしますが、代わりにいくつかの Bean 構造をマップします。

MOXyでこれを行うことはできますか?他の JAXB プロバイダーはありますか? JDOM を使用する必要がありますか、それとも他に役立つものはありますか?

4

3 に答える 3

1

この解決策は私のために働いた:

Java から XML への変換? (ユースケース #5)

http://blog.bdoughan.com/2010/09/jaxb-xml-infoset-preservation.html .

于 2013-07-09T05:53:23.387 に答える
0

XSLT を使用する必要があります。XSLT が発明された理由は、XML 構造を変更することでした。

于 2013-07-07T23:04:23.223 に答える