Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JDOM中创建多个同名元素_Java_Xml_Jdom - Fatal编程技术网

Java 在JDOM中创建多个同名元素

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" />

我正在尝试使用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" />          
    </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文件,尽管它以前是创建的。另外,它要求我在分配数据变量时添加(元素)转换,我做到了。