Java 在JDOM中创建多个同名元素
我正在尝试使用JDOM创建具有相同名称的多个元素,XML文件的输出应如下所示:Java 在JDOM中创建多个同名元素,java,xml,jdom,Java,Xml,Jdom,我正在尝试使用JDOM创建具有相同名称的多个元素,XML文件的输出应如下所示: <data> <series name="Related"> <point name="aaaa" y="1" /> <point name="bbbb" y="0" /> <point name="cccc" y="2" /> <point name="dddd" y="3" />
<data>
<series name="Related">
<point name="aaaa" y="1" />
<point name="bbbb" y="0" />
<point name="cccc" y="2" />
<point name="dddd" y="3" />
</series>
<series name="Not-Related" >
<point name="CE901" y="1" />
<point name="aaa" y="1" />
<point name="bbb" y="1" />
<point name="rrr" y="1" />
<point name="rrr" y="1" />
</series>
</data>
我试着将其编码为:
for (int i = 0; i < 2; i++) {
doc1.getRootElement().getChild("charts").getChild("chart").getChild("data").addContent(new Element("series").setAttribute("name", "Related"));
for (int j = 0; j < 4; j++) {
doc1.getRootElement().getChild("charts").getChild("chart").getChild("data").getChild("series").addContent(new Element("point").setAttribute("name", "CE901").setAttribute("y","1"));
}
}
for(int i=0;i<2;i++){
doc1.getRootElement().getChild(“图表”).getChild(“图表”).getChild(“数据”).addContent(新元素(“系列”).setAttribute(“名称”、“相关”);
对于(int j=0;j<4;j++){
doc1.getRootElement().getChild(“图表”).getChild(“图表”).getChild(“数据”).getChild(“系列”).addContent(新元素(“点”).setAttribute(“名称”,“CE901”).setAttribute(“y”,“1”);
}
}
但是,上面的代码输出了以下XML,这是错误的:
<data>
<series name="Related">
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
<point name="CE901" y="1"/>
</series>
<series name="Related"/>
您能帮我找到这样一种方法来精确地使用JDOM编写多个同名元素吗
谢谢。getChild(“数据”)
返回名为“data”的第一个子项。如果需要向名为“data”的第二个子元素添加内容,请使用getChildren()
,并从返回的列表中获取第二个元素
请注意,如果每次都使用变量而不是重复整个getter链,那么代码的可读性(和效率)会更高:
Element chart = doc1.getRootElement().getChild("charts").getChild("chart");
for (int i = 0; i < 2; i++) {
Element data = chart.getChildren("data").get(i);
Element series = new Element("series").setAttribute("name", "Related");
data.addContent(series);
for (int j = 0; j < 4; j++) {
series.addContent(new Element("point").setAttribute("name", "CE901")
.setAttribute("y","1"));
}
}
Element chart=doc1.getRootElement().getChild(“图表”).getChild(“图表”);
对于(int i=0;i<2;i++){
元素数据=chart.getChildren(“数据”).get(i);
元素系列=新元素(“系列”).setAttribute(“名称”、“相关”);
数据。添加内容(系列);
对于(int j=0;j<4;j++){
series.addContent(新元素(“点”).setAttribute(“名称”、“CE901”)
.setAttribute(“y”、“1”);
}
}
谢谢您的回答。它不工作,已成功编译,在控制台窗格中,消息显示Index:1 Size:1,但它没有创建xml文件,尽管它以前是创建的。另外,它要求我在分配数据变量时添加(元素)转换,我做到了。