본문 바로가기

Language

[XStream] XML 파싱할 때 언더바(_)가 2개 생기는 문제점 해결방법

728x90

XStream을 이용해서 XML 파싱을 하고 다시 XML로 원복할 때 언더바”_”가 2개 생기는 문제점이 있습니다.

<net.oofbird.testvo>
    <col1></col1>
    <col_1></col_1>
</net.oofbird.testvo>

위 파일을 TestVO로 오브젝트화 시킨뒤 다시 XML로 변환하면

<net.oofbird.testvo>
    <col1></col1>
    <col__1></col__1>
</net.oofbird.testvo>

이렇게 언더바가 2개 생기게 됩니다.


해결방법은 XStream 객체를 만들 때 replacer를 함께 등록해주면 되는데,

XmlFriendlyNameCoder replacer = new XmlFriendlyNameCoder("__", "_");
XStream xstream = new XStream(new DomDriver("UTF-8", replacer));

XmlFriendlyNameCoder라는 객체를 사용하면 됩니다.

일부 인터넷 검색해보니 XmlFriendlyReplacer 를 사용하라고 되어있는데 현재는 Deprecated 되어있습니다.

XStream 1.4 버전 이상부터는 XmlFriendlyNameCoder를 사용하라 가이드 되어있으니 참고하시면 됩니다.

반응형