我对JAXB很新。我有一个XML文档,其中包含一个元素内的序列化对象:
<?xml>
<structure>
...blah-blah
<serializedElement>
... JAXB xml block
</serializedElement>
</structure>
</xml>
如何解组这样的元素?
我写了以下内容:
org.w3c.dom.Document doc = db.parse(new StringInputStream(rawXml));
org.w3c.dom.Element obj = (org.w3c.dom.Element) doc.getElementsByTagName("serializedElement").item(0);
JAXBElement<MyJaxBObject> je = um.unmarshal(obj, MyJaxBObject.class);
System.out.println(je.getValue());
但是这总是返回空值对象(虽然是正确的类)。
我做错了什么?
谢谢!
答案 0 :(得分:4)
尝试以下方法:
MyJaxBObject je = javax.xml.bind.JAXB.unmarshal(serializedElementAsString, MyJaxBObject.class);
答案 1 :(得分:3)
好的,最后。问题是缺少
dbf.setNamespaceAware(true);
添加此行后,一切正常。