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