我正在解析可能是任何内容的未知XML字符串。
我尝试了以下代码
String XMLString = "<?xml version='1.0' encoding='UTF-8'?><dataset><height>true</height></dataset>";
Object xmlObj = JAXB.unmarshal(new StringReader(XMLString), Object.class);
StringWriter sw = new StringWriter();
JAXB.marshal(xmlObj, sw);
String xmlString = sw.toString();
System.out.println(xmlString);
然而打印出来
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<elementNSImpl>
<textContent>true</textContent>
</elementNSImpl>
如何维护原始节点名称?
答案 0 :(得分:1)
我想你已经没事了?&#34;一个DOM元素。
要使用JAXB解组某些内容,您需要为某组类创建JAXBContext
。您可以直接枚举它们或使用上下文路径(一个或多个包名称)枚举它们,但您必须提供此功能。否则JAXB不知道要解组什么。
如果您对解组的内容完全一致,那么JAXB可能是一个糟糕的选择。您可以改为解析DOM。 JAXB是关于将XML映射到Java类的实例。为此,您必须让JAXB知道要考虑哪些类。