2012-03-20 14 views
1

は、今私は、この変更は、Javaクラスに反映させたいです。あなたはどのようにそれを行うことができるかについて提案することができます。また、私はそれを持つ1つのJavaクラスのデータメンバとしてこの属性を追加したいと思います。それは私がやったこと。このクラスのjava属性にxmlのノードから値を割り当てる方法を知りたいと思います。論理だけを教えてください。更新データ

+0

に属性値を読み取るため

private Collection readAttributeList(Node node){ Collection<Object> objCollection = new ArrayList<Object>(); NodeList nodeList = node.getChildNodes(); for(int i=0; i < nodeList.getLength(); i++){ Node subNode = nodeList.item(i); if(subNode.getNodeName().equals("attribute")){ NodeList attributeList = subNode.getChildNodes(); HashMap <String,Object> attributeMap = new HashMap<String,Object>(); for(int j=0; j<attributeList.getLength(); j++){ Node attributeNode = attributeList.item(j); if(attributeNode.getNodeName().equals("fname")){ attributeMap.put(FNAME, attributeNode.getTextContent().trim()); } } } objCollection.add(attributeMap); } return objCollection; } 

をreadAttributeList:あなたは*ソースコード*または*コンパイル済みのクラスファイル*を変更したいのですか?それは私には分かりません。 –

+0

Andreas私は、XMLのノードからJavaアトリビュートへの値をメソッドに代入するだけのロジックを実装しています public void init(Node node)。これで私を助けてくれますか? Javaクラスのメンバーはxmlファイルの属性として同期しています。ですから、ノードからの値をJavaクラスの対応する属性に割り当てる方法を教えてください。 – user1280041

+0

基本的にxsdファイルがあります。このxsdファイルに属性を1つ追加します。この変更は、javaクラスdataservices.DataServicesLayout.javaに反映される必要があります。たとえば、次のような新しい定数を追加します。public static final String SERVICE ID = "serviceId"。 2番目の目的は、属性private String serviceIdとそのgetterメソッドとsetterメソッドを別のJavaクラスに追加することです。次に、xmlファイルのノードの値をメソッドのjava属性に代入する必要がありますpublic void init(Node node) – user1280041

答えて

1

xmlファイルのスキーマが既にあり、データ型のJavaクラスが必要な場合は、JAXBを使用することを検討してください。このxmlバインディングAPIは、スキーマからクラスを自動生成することができ、XML文書を整列化および非整列化する便利なメソッドを提供します。 (IAWは:「Javaインスタンスおよびその逆にXMLを変換)

+0

xmlのノードからjava属性に値を代入して方法 。私が選んだその他の要件。この点で助けてください。 – user1280041

+0

単純な「論理」はありません。自動的に行う場合は、最初にクラスを自動生成したJAXBまたはフレームワークを使用して、自動生成を再実行します。手作業でそれをやりたければ、スキーマを分析し、次にソースファイル、最後にバインディングルール/ロジックを分析し、フィールドとメソッドを記述します。 –

0

てみてください、このコードに

あなたattribute.xml

<attributes> 
    <attribute-list> 
      <attribute> 
       <fname>riddhish</fname> 
      <lname>chaudhari</lname> 
     </attribute> 
    </attribute-list> 
<attributes> 

クラスファイル

public static final String ATTRIBUTE_LIST = "ATTRIBUTE_LIST"; 
public static final String ATTRIBUTE = "ATTRIBUTE"; 
public static final String FNAME = "FNAME"; 

コードを使用して実装します。 XMLファイルから属性を取り除くために

Document document = null; 
NodeList nodeList = null; 
Node node = null; 

nodeList = document.getElementsByTagName("----file attributes.xml---").item(0).getChildNodes(); 
HashMap <String,Object> localParameterMap = new HashMap<String,Object>(); 

for(int i=0; i<nodeList.getLength(); i++){ 
    node = nodeList.item(i); 
    if(node.getNodeName().equals("attribute-list")){ 
     Collection objCollection = readAttributeList(node); 
     localParameterMap.put(ATTRIBUTE_LIST, objCollection); 
    } 
} 

関数は()だけ明確化するための変数

String strfname = null; 

if(map.get(CLASS_NAME.FNAME) != null) { 
    strfname = (String)map.get(CLASS_NAME.FNAME); 
} 
+0

ありがとうリディッシュ – user1280041

関連する問題