使用 JAXB 的 XML 中的标头标记

2022-09-02 12:16:03

现在,我正在从我的JAXB Marshaller获得XML输出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><create></create>

但是我希望我的根元素是:

<create xmlns="http://ws.abc.com" xmlns:doc="http://ws.abc.com">

我是否需要使用解析器对其进行修改,或者是否有任何可用的注释。


答案 1

可以在 上设置以下属性以删除标头:Marshaller

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

详细信息


答案 2

我过去使用过变形金刚。您需要类似于以下示例代码的内容:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StreamResult transformedDoc = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(content); // Where content is a org.w3c.dom.Document object.

transformer.transform(source, transformedDoc);

因此,也许可以进行编组,然后进行处理。不确定这是否是最好的方法,但它会起作用。


推荐