我想向xml定义文件中添加属性根据xml文件中属性的更改更新java类中的数据
现在我希望将此更改反映到java类中。你能建议如何做到这一点。另外我想添加这个属性作为一个数据成员在它的一个java类中的getter和setter。我已经完成了。我想知道如何将xml的节点中的值分配给此类中的java属性。请只告诉我逻辑。
我想向xml定义文件中添加属性根据xml文件中属性的更改更新java类中的数据
现在我希望将此更改反映到java类中。你能建议如何做到这一点。另外我想添加这个属性作为一个数据成员在它的一个java类中的getter和setter。我已经完成了。我想知道如何将xml的节点中的值分配给此类中的java属性。请只告诉我逻辑。
由于您已经有了用于XML文件的模式,并且您希望数据类型为Java类,请考虑使用JAXB。这个XML绑定API可以自动生成模式中的类,它提供了编组和解组XML文档的方便方法。 (IAW:“转换一个XML到Java实例,反之亦然)
我只是希望逻辑将xml的节点中的值分配给java属性,转换为方法 。我整理的其他要求。你能帮助这方面吗? – user1280041 2012-03-20 07:09:06
没有简单的“逻辑”。如果您想自动执行此操作,请使用JAXB或最初自动生成类的框架,然后重新运行自动生成。如果你想手工完成 - 分析模式,然后分析源文件,最后是绑定规则/逻辑,然后编写字段和方法。 – 2012-03-20 07:18:33
尝试执行使用此代码
您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);
}
}
()函数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);
}
非常感谢Riddhish – user1280041 2012-03-21 04:23:25
读取属性值只是为了澄清:你想改变*源代码*或*编译的类文件*?我不清楚这一点。 – 2012-03-20 05:13:21
Andreas我只是将xml的节点中的值分配给java属性的逻辑,将其分配给方法 public void init(Node node)。你能帮我解决这个问题吗?请注意,java类的成员与xml文件中的属性同步。所以请告诉我如何将节点中的值分配给java类中的相应属性。 – user1280041 2012-03-20 05:29:35
基本上有一个xsd文件。我想添加一个属性到这个xsd文件。现在这个改变应该反映在一个java类dataservices.DataServicesLayout.java中,添加如下的新常量: - public static final String SERVICE ID =“serviceId”。第二个目标是在另一个java类中添加属性private String serviceId以及getter和setter方法。然后,我们需要将xml文件的节点中的值分配给java属性,方法是public void init(节点节点) – user1280041 2012-03-20 06:19:53