2012-04-16 8 views
0

におけるJavaで次のユーティリティを実行する方法を私に提案して下さい、一般的なXMLユーティリティ - JavaのJDOM

  1. は、JDOMでXMLを生成するために、一般的なJavaクラスを作成したいです。
  2. クラスは実行時にパラメータのパスに応じて任意のxml構造体を生成するのに十分です。
  3. は例えば、私のモジュールでは、私たちは別のXMLファイルを必要な1つのルートすなわち

    <Child> 
    
        <A> This is normal text </A> 
    
        <B> This is normal text </B> 
    
        <C> This is normal text </C> 
    
    </Child> 
    

  4. でなく、他のモジュールでは、3種類の子を持つXMLを作成する必要がありますいくつかの属性を持つ10人の子供を持つ。

  5. 私たちは、実行時に特定のフォルダにXMLファイルを生成する一般的なXMLユーティリティを使うことに決めました。
  6. ユーティリティは

...アプリケーションと同様に管理することは容易では冗長なコードを避けるために私たちを助けるあなたの友人を助けてください...

おかげ グラディエーター

+0

このutilメソッドはオブジェクトを受け取ってからXMLに変換しますか? – mprabhat

+0

はい...私たちは、オブジェクトを渡すことができますか、String形式またはJava Beanオブジェクト....のデータだけです。 – GLADIATOR

+0

xstreamを使用することができます場合は、使用できるutilメソッドを表示できます。 – mprabhat

答えて

0

することができます次のようにXStream経由で行います:

public static String getXMLFromObject(Object toBeConverted, String classNameAlias, Map<String, String> fieldAlias, 
      List<String> fieldsToBeOmitted) { 
     StringBuilder objectAsXML = new StringBuilder(); 
     if(toBeConverted != null){ 
      XStream xStream = new XStream(new DomDriver()); 
      if(classNameAlias != null && classNameAlias != "" && classNameAlias.trim().length() > 0) { 
       xStream.alias(classNameAlias, toBeConverted.getClass()); 
      } 
      if(fieldAlias != null && !fieldAlias.isEmpty()){ 
       for (Entry<String, String> entry : fieldAlias.entrySet()) { 
        xStream.aliasField(entry.getKey(), toBeConverted.getClass(), entry.getValue()); 
       } 
      } 
      if(fieldsToBeOmitted != null && fieldsToBeOmitted.size() > 0){ 
       for (String fieldToBeOmitted : fieldsToBeOmitted) { 
        xStream.omitField(toBeConverted.getClass(), fieldToBeOmitted); 
       } 
      } 
      objectAsXML.append(xStream.toXML(toBeConverted)); 
     } 
     return objectAsXML.toString(); 
    } 

intを変換するクラスを制御できる場合はO XMLその後、私はあなただけobjectToBeConvertedからそれを取得し、また、上記の方法では、最後の3つのパラメータを送信する必要はありません。その場合は

public interface XMLConvertable { 
    public String getClassAlias(); 

    public List<String> getFieldToBeOmitted(); 

    public Map<String, String> getFieldAliases(); 
} 

のようないくつかの構造を持つXMLConvertableようなインターフェイスのものを持ってお勧めしますXMLに変換できるかどうかに関わらず、システム内のすべてのオブジェクトが宣言できるようになります。

関連する問題