public static <T> T fromXml(String xml, Class<T> clazz) {
try {
StringReader reader = new StringReader(xml);
return (T) createUnmarshaller(clazz).unmarshal(reader);
} catch (JAXBException e) {
throw Exceptions.unchecked(e);
}
}
使用上述代码解析xml时,报错:
java.lang.RuntimeException: javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。]
at org.springside.modules.utils.Exceptions.unchecked(Exceptions.java:27)
经查,原因是xml内容的首尾包含了空格。
去掉 <?xml version="1.0" encoding="GBK"?> 前面的空格即可。
本文深入探讨了在使用Java进行XML解析时遇到的常见错误:javax.xml.bind.UnmarshalException,特别是当XML文档头部包含空格时引发的问题。通过示例代码展示了错误的抛出,并提供了去除XML声明前导空格的解决方案,确保解析过程顺利进行。

5108

被折叠的 条评论
为什么被折叠?



