Jaxb 中怎么去除空标签 5C

例如 以下空值的节点不需要生成:

<OperationalDateTime>
                <DispatchDateTime>
                    <AircraftDispatchDateTime/>
                </DispatchDateTime>
                <DoorCloseDateTime>
                    <ActualDoorCloseDateTime/>
                </DoorCloseDateTime>
                <OffBlockDateTime>
                    <ActualOffBlockDateTime/>
                </OffBlockDateTime>
                <TakeOffDateTime>
                    <ActualTakeOffDateTime>2019-06-14T08:44:00</ActualTakeOffDateTime>
                </TakeOffDateTime>
                <NextAirportArrivalDateTime>
                    <EstimatedNextAirportArrivalDateTime/>
                    <ActualNextAirportArrivalDateTime/>
                </NextAirportArrivalDateTime>
            </OperationalDateTime>
/**
 * JavaBean转换成xml
 * @param obj
 * @param encoding
 * @return
 */
public static String convertToXml(Object obj, String encoding) {
    String result = null;
    try {
        JAXBContext context = getJaxbContext(obj.getClass());
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
        StringWriter writer = new StringWriter();
        marshaller.marshal(obj, writer);
        result = writer.toString();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

2个回答

lix909
+N一米阳光 就是不想生成任何标签啊,这种模式会生成空值标签 <ScheduledOnBlockDateTime xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
8 个月之前 回复

我的问题跟你相反,我是想要你这种效果,空值要显示标签,现在显示不出来

lix909
+N一米阳光 使用在线XML转换成xsd 再生成bean 就有这种效果 http://www.xmlforasp.net/CodeBank/System_Xml_Schema/BuildSchema/BuildXMLSchema.aspx
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问