使用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>