我正在尝试使用Java编写XML文件。我想要一个字符串数组填充元素名称,如下所示:String[] elements = {"a", "b", "c", "d"};
我想要一个for循环遍历数组,并使第一个元素成为根元素的子元素,第二个元素是子元素的子元素第一,第三个元素的第二个孩子,等如何使用for循环来编写XML文件以将元素追加到以前的元素
的目标是有一个看起来像这样的XML文件:
<root>
<a>
<b>
<c>
<d>
</d>
</c>
</b>
</a>
</root>
这是迄今为止我的Java代码:
package test;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Test {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
Element root = document.createElement("root");
document.appendChild(root);
String[] elements = {"a", "b", "c", "d"};
for (int i = 0; i < elements.length; i++) {
Element element = document.createElement(elements[i]);
root.appendChild(element);
}
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File("C:/test.xml"));
transformer.transform(source, result);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
现在,for-loop只是将数组中的所有元素附加到根,所以XML文件看起来像:
<root>
<a/>
<b/>
<c/>
<d/>
</root>
我想要一个for-loop,使每个元素的孩子的前一个元素。
在你的for循环,怎么样reaffecting根先前创建的元素? –