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

标签 java xml xml-generation

我是使用 java 的新手。我正在尝试写出一个具有以下形式的 XML 文件:

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

目录的数量是任意的,取决于用户的选择。这是应生成 XML 文件的代码部分。

    for(int i = 0; i < paths.size(); i++) {
    option.appendChild(doc.createElement("state").appendChild(doc.createTextNode(paths.get(i))));
    }
    child.appendChild(option);

问题是输出没有标签,我希望由 doc.createElement("state") 创建标签。为什么没有创建这些节点?

这是一个例子:

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

感谢您的帮助。

最佳答案

您正在调用 option.appendChild() 并向其传递结果

doc.createElement(...).appendChild(...)

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

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

关于java - 生成具有任意数量节点的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24681643/

相关文章:

java - WebSphere:boundedbuffer.waitGet_ 占用了大部分 CPU

java - Eclipse 资源管理器中缺少小红色 "x"以及具有编译错误的 Java 源代码问题 View ?

java - 自定义 joystickView 在 xml 中不起作用 - Android

xml - 我需要以文本格式与不同的程序交换数据,你有什么建议?

xml - 在 GWT 客户端创建 XML 文档

java - Jersey 如何注释 java.sql.Timestamp 对象

java - 在 Jena 中将结果集转换为 RDF/XML

sql - fetchxml 脚本中的 case 语句

php - Cakephp生成xml错误-空白