我想在xml defination文件中添加一个属性
现在我希望这个更改能够反映在java类中。你能建议如何做到这一点。此外,我想将此属性作为数据成员添加到一个java类中; s getter和setter。我做了。我想知道如何将xml节点中的值分配给此类中的java属性。请告诉我唯一的逻辑。
答案 0 :(得分:1)
由于您已经有了xml文件的模式,并且您希望数据类型使用java类,因此请考虑使用JAXB。这个xml绑定API可以从模式自动生成类,它提供了编组和取消组合XML文档的便捷方法。 (IAW:“将XML转换为java实例,反之亦然)。
答案 1 :(得分: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文件的rading属性的代码
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);
}
}
function()readAttributeList
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;
}
用于读取变量
中的属性值String strfname = null;
if(map.get(CLASS_NAME.FNAME) != null) {
strfname = (String)map.get(CLASS_NAME.FNAME);
}