Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 生成具有任意数量节点的XML_Java_Xml_Xml Generation - Fatal编程技术网

Java 生成具有任意数量节点的XML

Java 生成具有任意数量节点的XML,java,xml,xml-generation,Java,Xml,Xml Generation,我不熟悉java。我正试图写出一个XML文件,其格式如下: <option> <name>CompilerOptions</name> <state>Directory1</state> <state>Directory2</state> <state>Directory3</state> </name> </

我不熟悉java。我正试图写出一个XML文件,其格式如下:

<option>
    <name>CompilerOptions</name>  
       <state>Directory1</state>
       <state>Directory2</state>
       <state>Directory3</state>
    </name>
</option>

编译选项
目录1
目录2
目录3
目录的数量是任意的,取决于用户的选择

    for(int i = 0; i < paths.size(); i++) {
    option.appendChild(doc.createElement("state").appendChild(doc.createTextNode(paths.get(i))));
    }
    child.appendChild(option);
for(int i=0;i
问题是输出没有标记,我希望由doc.createElement(“state”)创建这些标记。为什么没有创建这些节点

下面是一个例子:

<option>
    <name>CompilerOptions</name>
    Directory1
    Directory2
    Directory3
</option>

编译选项
目录1
目录2
目录3

谢谢你的帮助

您正在调用
option.appendChild()
并将

doc.createElement(...).appendChild(...)
但返回新附加的子节点,而不是它附加到的节点。实际上,您正在使用文本节点调用
option.appendChild()
。你想要:

Element state = doc.createElement("state");
state.appendChild(doc.createTextNode(paths.get(i)));
option.appendChild(state);

很好,这很有道理。