gpt4 book ai didi

java - 使用 JAXB 进行编码(marshal)处理时抑制 XML 节点

转载 作者:行者123 更新时间:2023-12-04 06:14:19 26 4
gpt4 key购买 nike

我正在使用 JAXB 将数据从 java 对象序列化为 XML。如果未经授权的用户请求 xml,我不想创建一些节点。

这可以使用 JAXB 来完成吗?

我能想到的几个非 JAXB 解决方案是:

  • 使用 Regex 或 XSLT 生成 XML 后删除节点。
  • 将隐藏节点对应的对象的值设置为空。

  • 建议的方法是什么?

    最佳答案

    注:我是EclipseLink JAXB (MOXy)领导,也是 JAXB 2 ( JSR-222 ) 专家组的成员。

    使用任何 JAXB 实现

    您可以使用 XSLT 并利用 JAXBSource 对象作为转换的输入。

    JAXBSource source = new JAXBSource(jaxbContext, myPOJO);
    Result result = new StreamResult(System.out);
    transformer.transform(source, result);

    使用 MOXy JAXB

    如果您使用 JAXB 的 MOXy 实现,您可以使用其 XML 元数据将第二个映射应用到您的对象模型。

    详细示例
  • http://blog.bdoughan.com/2011/09/mapping-objects-to-multiple-xml-schemas.html
  • 关于java - 使用 JAXB 进行编码(marshal)处理时抑制 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447217/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com