마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

simplexml에서 null값인 array element를 읽지않는 문제

0 추천

xml 문서가 아래 처럼 있을때

<data>

<item>notnull</item>

<item></item>

<item>notnull</item>

</data>

단순한 파싱의 경우 저 아이템이 2개로 파싱이 되서 나옵니다. 사정상 이를 값이 없더라고 null 이나 공백 문자열로라도 할당받고 싶어서 방법을 찾았는데  

public class NullStringConverter implements Converter<String>
{
    @Override
    public String read(InputNode node) throws Exception {
        String value = node.getValue();
        if(value == null)
        {
            value = "";
            Log.w("NullStringConverter", "value = " + value);
        }
        return value;
    }

    @Override
    public void write(OutputNode node, String value) throws Exception
    {
        node.setValue(value);
    }
}
class data
{
     @ElementArray(name = "item", inline = true)
     @Convert(value = SimpleXMLStringConverter .class)
      List<String> mData;
}

public static <T> T getParseXml(String xmlStr, Class<T> _class) {
        Strategy strategy = new AnnotationStrategy();

        Serializer serializer = new Persister(strategy);
        try {
            if (serializer.validate(_class, xmlStr) == true) {
                xmlStr = xmlStr.replace("\\r\\n", "\n");
                return serializer.read(_class, xmlStr);
            } else {
            }

        } catch (Exception e) {
            Log.w("TaskFailed", "파싱에 실패했습니다.");
            e.printStackTrace();
        }

        return null;
    }

링크에 내용처럼 적용했는데 되질 않습니다. 디버깅 해보니 아예 저 컨버터 클래스에 있는 코드로 찍히지도 않는데 제가 놓친부분이 있을까요?

 

익명사용자 님이 2016년 12월 15일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...