当前位置: 首页 > 知识库问答 >
问题:

Jaxb如何抑制标记名但获取值

柯骏
2023-03-14

我正在使用JAXB生成XML,XML必须类似于

<batch>
<elem id=101>
<field name=country>US</field>
<field name=criteria>Test criteria</field>
:
:
</elem>
</batch>

所有内部内容都是字段。我有一个名为'field'的java类,它有'name'和'value'字符串属性,带有getter和setter。“Elem”类将“field”作为ArrayList。当我使用Jaxb封送时,它在字段中也包含“value”。实现这一点的高效途径是什么?我应该过滤'value'标记(抑制)还是应该改变java对象结构?我得到的是这个

<batch>
<elem id=101>
<field name=country><value>US</value></field>
<field name=criteria><value>Test criteria</value></field>
:
:
</elem>
</batch>

field类如下所示

import javax.xml.bind.annotation.XmlAttribute;
public class Field {
    private String name;
    private String value;
    public Field() {
    }
    public Field(String name, String value) {
        super();
        this.name = name;
        this.value = value;
    }
    @XmlAttribute
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}

共有1个答案

淳于恺
2023-03-14

我发现它是一个标记@XMLValue,它应该应用于field类中的value field,它为我提供了正确的格式XML。

 类似资料:
  • 问题内容: 从文档中的示例来看,似乎不应该有任何输出 但是,当我在python shell中尝试时,列表会被打印出来。我想知道这是否是默认行为,以及如何抑制的输出。 问题答案: 这是按清洁度递减的顺序 抑制 输出的方法。他们假设您使用的是Python 3。 您可以重定向到特殊目标。 import subprocess subprocess.run([‘ls’, ‘-l’], stdout=subp

  • 我遇到了JAXB编组器的问题。根据文档,当@xmlelement(required=true)(缺省为nillable=false)时,省略了一个null实例,但我在生成的xml中看到,我应该如何让JAXB从xml中完全省略“ExternalEventID”。

  • 问题内容: 每次我都会收到警告: 抑制它的最佳方法是什么?所有软件包都是最新的。 Conf: OSX带有Brew Python 2.7.10(默认,2015年7月13日,12:05:58),pandas == 0.17.0和matplotlib == 1.5.0 问题答案: 您可以禁止所有警告:

  • 我陷入了一个棘手的问题,我应该使用JAXB库取消marshaX输入流,除了XML结构没有帮助。 我的问题是:标记用于值为>的的

  • 我想动态地获取窗体中选择标记的值。我实际上是这么做的

  • 我在Spring Boot java应用程序中使用Open Telemetry,对于每个请求,Open Telemetry代理都会记录我想要抑制的额外日志行。由于客户端试图不断轮询kafka服务器状态,日志太多。io。开放遥测。出口商。日志记录:错误似乎没有影响。 yml中的日志配置: 发射器命令: 任何关于如何抑制遥测内部日志线的建议都将大有帮助。