当前位置: 首页 > 面试题库 >

如何配置JAXB,以便在解组标签值时修剪空白?

严朝明
2023-03-14
问题内容

如何配置JAXB解组器,以便从字符串中修剪开头和结尾的空格?

例如,让我们考虑一下使用JAXB注释的Java bean和XML之间的简单绑定:

@XmlRootElement(name="bean")
class Bean {

  @XmlElement(required=true)
  String name;

  @XmlElement(required=true)
  int number;
}

我希望能够在以下情况下解组XML,以便 bean.name 不包含开头和结尾的空格-是“ My name ”,而不是“ \ n My
name \ n
”。

<bean>
  <name>
    My name
  </name>
  <number>1</number>
</bean>

问题答案:

使用自定义 适配器
类。我当时以为NormalizedStringAdapter可以完成工作,但这仅用于解组,无论如何也不能完成您想要的工作。

public class MyNormalizedStringAdapter extends XmlAdapter<String, String> {

    @Override
    public String marshal(String text) {
        return text.trim();
    }

    @Override
    public String unmarshal(String v) throws Exception {
        return v.trim();
    }
}

然后使用您的适配器装饰字段,如下所示:

@XmlElement(required=true)
@XmlJavaTypeAdapter(MyNormalizedStringAdapter.class)
String name;


 类似资料:
  • 问题内容: 我有如下数组 我想要一个数组,该数组包含两侧没有空格的值,但它可以包含空值如何在php中做到这一点。输出数组应该像这样 问题答案: array_map 和 trim 可以胜任

  • 在不使用getter和setter的情况下,JAXB可以正确地解组所提供的JSON。 null和“null”是完全不同的东西,但是我不想在POJO中包含这个字段,并且我必须忽略这些null值。 编辑

  • 问题内容: 是否有Python函数可以从字符串中修剪空白(空格和制表符)? 例如:→ 问题答案: 对于两侧的空格,请使用: 对于右侧的空格,请使用: 对于左侧的空格: 正如thedz所指出的,您可以提供一个参数来将任意字符剥离到以下任何函数中: 这将去除任何空间,,,或从左侧字符,右手侧,或该字符串的两侧。 上面的示例仅从字符串的左侧和右侧删除字符串。如果还要从字符串中间删除字符,请尝试: 那应该

  • 嗨,我想使用maven依赖项使用un-marshaling来获取嵌套xml的值,但最终的输出是返回给我空值。我使用了maven项目中的3个包和vehicle.xml包含了car的值,在获取这些值后,我必须将它们插入到access数据库中 我想在最终输出返回null时获得这些值

  • 问题内容: 是否有Python函数可以从字符串中修剪空格(空格和制表符)? 例如: 问题答案: 两侧的空格: 右侧的空格: 左侧的空白: 正如thedz所指出的,你可以提供一个参数来将任意字符剥离到以下任何函数中: 这将去除任何空间,,或从左侧字符,右手侧,或该字符串的两侧。 上面的示例仅从字符串的左侧和右侧删除字符串。如果还要从字符串中间删除字符,请尝试: 那应该打印出来:

  • 我在XSD / XML到Java的方向上使用JAXB。我的XSD包含派生类型,我必须解组的XML包含xsi:type属性。查看JAXB(默认的Sun实现)生成的代码(用于解组),似乎没有任何方法可以获得这些属性。 是不是因为我总是可以对解组的Java对象执行并找到实际的类? 不过,这不是取决于我提供给某些基类可能会被实例化?(与xsi:type属性的实际值相对应的类的超类)。在这种情况下,可能需要