Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 为什么我能';t使用JDOM从根元素获取属性 让我们考虑一下这个XML文件: <?xml version="1.0" encoding="UTF-8"?> <root attribute="value"> <element>myElement</element> </root>_Java_Xml_Root_Jdom - Fatal编程技术网

Java 为什么我能';t使用JDOM从根元素获取属性 让我们考虑一下这个XML文件: <?xml version="1.0" encoding="UTF-8"?> <root attribute="value"> <element>myElement</element> </root>

Java 为什么我能';t使用JDOM从根元素获取属性 让我们考虑一下这个XML文件: <?xml version="1.0" encoding="UTF-8"?> <root attribute="value"> <element>myElement</element> </root>,java,xml,root,jdom,Java,Xml,Root,Jdom,对于这个xml文件,一切正常。但当我使用此文件时: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE rootElement PUBLIC "-//Project" "mydtd.dtd"> <root attribute="value"> <element>myElement</element> </root> myElement 我在线程“main”java.

对于这个xml文件,一切正常。但当我使用此文件时:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rootElement PUBLIC "-//Project" "mydtd.dtd">
<root attribute="value">
    <element>myElement</element>
</root>

myElement
我在线程“main”java.lang.NullPointerException中得到
异常

您认为我应该在解析之前从xml文件中删除DOCTYPE,然后在完成解析之后再删除它吗

或者在这种情况下我还能做些什么

谢谢

或者在这种情况下我还能做些什么

是-永远不要这样做:

catch(Exception e){}
这不是JDOM或属性的问题,而是一般异常处理的问题

很可能您得到的是
NullPointerException
,因为XML文件没有正确解析,所以
文档
字段是
null
。但由于捕获并忽略了异常,因此没有收到任何有意义的错误消息

将当前所有代码移到catch块之后的try/catch块中,您将得到一个更有用的错误报告

或者在这种情况下我还能做些什么

是-永远不要这样做:

catch(Exception e){}
这不是JDOM或属性的问题,而是一般异常处理的问题

很可能您得到的是
NullPointerException
,因为XML文件没有正确解析,所以
文档
字段是
null
。但由于捕获并忽略了异常,因此没有收到任何有意义的错误消息



将当前所有代码移到catch块之后的try/catch块中,您将得到一个更有用的错误报告。

导致此空指针异常的原因是什么?引发异常的位置是哪里?请提供堆栈跟踪并标记引发exception.root=document.getRootElement()的行@OpenMind:该行引发异常的原因与我在回答中所述的相同。是什么导致此空指针异常?引发异常的位置?请提供堆栈跟踪并标记引发exception.root=document.getRootElement()的行@OpenMind:该行引发异常是因为我在回答中指出的原因。@OpenMind:是的,我知道,但你应该这样做,因为这就是导致错误的原因(《代码》NullPointerException
)。您可能认为异常处理在这里无关紧要,但事实并非如此。@OpenMind:请参阅我答案中的最后一句话。不要吞下sxb.build中的异常;允许它被抛出,或者至少在某个地方打印出来。好吧,我编辑了代码和xml以使其更具体,现在我有了
java.io.FileNotFoundException:C:\Users\Anonymous\Desktop\hello\u world\mydtd.dtd(系统找不到指定的文件)
@OpenMind:Ok,这就是你的问题。要么将DTD文件放在那里,要么从XML文件中删除DOCTYPE。@OpenMind:是的,我知道,但你应该这样做,因为这就是导致错误的原因(NullPointerException)。您可能认为异常处理在这里无关紧要,但事实并非如此。@OpenMind:请参阅我答案中的最后一句话。不要吞下sxb.build中的异常;允许它被抛出,或者至少在某个地方打印出来。好吧,我编辑了代码和xml以使其更具体,现在我有了
java.io.FileNotFoundException:C:\Users\Anonymous\Desktop\hello\u world\mydtd.dtd(系统找不到指定的文件)
@OpenMind:Ok,这就是你的问题。将DTD文件放在那里,或者从XML文件中删除DOCTYPE。