0

CSV から値のセットのみを含む XML を生成する必要があるいくつかの条件に基づいて、値のストリームを CSV として取得します。例えば。

Input : a:value1, b:value2, c:value3, d:value4, e:value5.
if (condition1) 
XML O/P = <Request><ValueOfA>value1</ValueOfA><ValueOfE>value5</ValueOfE></Request>
else if (condition2)
XML O/P = <Request><ValueOfB>value2</ValueOfB><ValueOfD>value4</ValueOfD></Request>

テンプレートに応じて出力 XML が生成されるように、プロセスを外部化したいと考えています。文字列操作はこれを実装する最も簡単な方法ですが、入力に特殊文字が含まれている場合などに XML を台無しにしたくありません。提案してください。

4

3 に答える 3

0

独自のテンプレート エンジン (JATL http://code.google.com/p/jatl/ ) をお勧めします。これは (X)HTML に対応していますが、XML の生成にも非常に優れています。

問題全体 (つまり、入力 ("," と ":") の二重分割) をわざわざ解決することはしませんでしたが、これが JATL の使用方法です。

    final String a = "stuff";
    HtmlWriter html = new HtmlWriter() {
        @Override
        protected void build() {
            //If condition1
            start("Request").start("ValueOfA").text(a).end().end();
        }
    };
    //Now write.
    StringWriter writer = new StringWriter();
    String results = html.write(writer).getBuffer().toString();

どちらが生成しますか

<Request><ValueOfA>stuff</ValueOfA></Request>

すべての正しいエスケープが処理されます。

于 2012-04-19T13:10:55.313 に答える
0

おそらく、 Apache Velocityのようなテンプレート エンジンの恩恵を受けることができます。

于 2012-04-19T12:57:20.010 に答える
0

xsd を作成し、 JAXBを使用して、XML の生成に使用できる Java バインディング クラスを作成することをお勧めします。

于 2012-04-19T12:58:41.220 に答える