【发布时间】:2020-02-07 15:54:12
【问题描述】:
我试图模仿一些非常古老的 C 代码的 xml 输出,这些代码使用单引号而不是双引号来表示 XML 属性。 Jackson 目前正在输出如下内容:
<test value="foobar"/>
但我现有的 C 代码会输出:
<test value='foobar'/>
相反。有没有办法配置 XmlMapper 来做到这一点?
【问题讨论】:
标签: xml jackson-dataformat-xml
我试图模仿一些非常古老的 C 代码的 xml 输出,这些代码使用单引号而不是双引号来表示 XML 属性。 Jackson 目前正在输出如下内容:
<test value="foobar"/>
但我现有的 C 代码会输出:
<test value='foobar'/>
相反。有没有办法配置 XmlMapper 来做到这一点?
【问题讨论】:
标签: xml jackson-dataformat-xml
我最终追踪了大约十年前的其他类似问题,发现无法重新配置 STAX 来执行此操作,因为它会破坏 XML 格式。我最终像这样扩展了 XmlMapper: ` 公共类 XmlMapperQuotes 扩展 XmlMapper { private static final long serialVersionUID = 1L;
@Override
public String writeValueAsString(Object object) throws JsonProcessingException {
return super.writeValueAsString(object).replace("=\"", "='").replace("\"/", "'/");
}
}
` 希望不会在我脸上破裂和炸毁。我一直在处理用 C 编写的无法更改的遗留 XML 解析器。
【讨论】: