使用java编写XML会导致层次结构\u请求\u错误

使用java编写XML会导致层次结构\u请求\u错误,java,xml,Java,Xml,似乎无法跟踪我获得层次结构\u请求的原因\u错误:试图在不允许的位置插入节点。 这是我的片段,是我的真实作品 DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element rootElemen

似乎无法跟踪我获得
层次结构\u请求的原因\u错误:试图在不允许的位置插入节点。

这是我的片段,是我的真实作品

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement;
Element childElement;

/* iterate through list */
Iterator<Map<String,String>> mapItrList = mapList.iterator();
Map<String, String> tempMap;
String[] tempKeySet;

while(mapItrList.hasNext())
{
    tempMap = mapItrList.next();

    /* process each data */

    rootElement = doc.createElement(key);
    rootElement.setAttribute("id", tempMap.get(key));
    doc.appendChild(rootElement);


    tempKeySet = tempMap.keySet().toString().replace("[", "").replace("]", "").split(",");

    for(int temp = 0; temp < tempKeySet.length; temp++)
    {   
        if(!tempKeySet[temp].equals(key))
        {
            childElement = doc.createElement("col");
            childElement.setAttribute("id", tempKeySet[temp].toString());
            childElement.appendChild(doc.createTextNode(tempMap.get(tempKeySet[temp])));
            rootElement.appendChild(childElement);
        }
        else
        {
            /* do nothing */
        }

    }

}


// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
//StreamResult result = new StreamResult(new File("file.xml"));
StreamResult result =  new StreamResult(System.out);

transformer.transform(source, result);

System.out.println("File saved!");
键参考XML上的

col是指内部环路

只是想让你知道为什么会有一个
,而
,因为我正在遍历一个映射列表,所以它应该有很多
在映射内部还有许多输入,所以在while循环的第一次迭代中,预期的xml如下所示

<Outer id="asdf">
    <col id="asdf">
        asdf
    </col>
    <col id="asdf3">
        asdf
    </col>
    ...
</Outer>

asdf
asdf
...
但似乎有一个错误,我在追踪时遇到了麻烦

=================================================================================================

为了有同样问题的人的利益,正如
kdgregory

必须指定一个基本图元。这解决了我的问题

只是一个提示,因为这是基本的调试:一个XML文档中可以有多少根元素?1,我必须先删除一个根元素,然后再删除其他元素吗?因为我从根本上治疗。。因此,我的XML应该如上所示:)您是否在任何地方创建
?另外,我确信表达式中的堆栈跟踪会准确地显示出哪一行有错误。是的,我添加了一个基本元素来包含我的所有外部元素,它生成了一个指向此line transformer.transform(源、结果)的空指针异常;顺便说一句,我检查了变压器、电源、结果。。它不是空的。。我阅读了transformer的api,如果在转换过程中发生不可恢复的错误,它会抛出异常。这是什么意思?请划掉前面的评论。。是一个访问错误,与我所说的任何错误都不相关:)
{
 Status1=status1, 
 Status2=status2, 
 Type=myType, 
 Status3=status3,
 Status4=status4
}
<Outer id="asdf">
    <col id="asdf">
        asdf
    </col>
    <col id="asdf3">
        asdf
    </col>
    ...
</Outer>