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