我正在为自定义XML编写器为学校制作一种API。我有:
public Document CreateDocument(int loops, int attr, String data[], String dataattr[][][]) {
Document BetterDoc = DocumentHelper.createDocument();
Element root = BetterDoc.addElement("root");
for (int i = 0; i < loops; i++) {
Element(Object) data[i] = root.addElement(data[i])
for (int i2 = 0; i < attr; i++) {
.addAtribute(dataattr[i][i2][0], dataattr[i][i2][1])
};
}
return BetterDoc;
}
我想要帮助的一行是:
Element(Object) data[i] = root.addElement(data[i])
我想创建一个与数据名称相同的元素[i]。
顺便说一下,我正在使用dom4j XML .jar。
我听说过一个叫做hashmap的东西,如果这是正确的方法,请有人解释一下如何使用它。
答案 0 :(得分:3)
没有。只是你无法做到这一点。您无法使用其名称动态创建/访问变量。使用Reflection,您可以访问,但无法创建。
我猜,地图可以像
一样完成任务map.put(data[i],root.addElement(data[i]);
上面只是一个示例代码,可以提供一些亮点。
答案 1 :(得分:0)
与Groovy,PHP或Javascript不同,您无法创建动态变量,但您可以创建数组或重用现有变量:
使用现有变量:
public Document CreateDocument(int loops, int attr, String data[], String dataattr[][][]) {
Document BetterDoc = DocumentHelper.createDocument();
Element root = BetterDoc.addElement("root");
for (int i = 0; i < loops; i++) {
Element _data = root.addElement(data[i]);
for (int i2 = 0; i < attr; i++) {
_data.addAtribute(dataattr[i][i2][0], dataattr[i][i2][1])
};
}
return BetterDoc;
}
使用数组:
public Document CreateDocument(int loops, int attr, String data[], String dataattr[][][]) {
Document BetterDoc = DocumentHelper.createDocument();
Element root = BetterDoc.addElement("root");
Element[] _data = new Element[loops];
for (int i = 0; i < loops; i++) {
_data[i] = root.addElement(data[i]);
for (int i2 = 0; i < attr; i++) {
_data[i].addAtribute(dataattr[i][i2][0], dataattr[i][i2][1])
};
}
return BetterDoc;
}
如果您愿意,可以使用ArrayList
替换数组。