XmlPullParser를 사용하기 위해 묶여 있습니다 (Smack XMPP 라이브러리를 사용하기 때문에). 그러나 XML을 구문 분석하고 (적어도 XSD가 제공된 경우) 읽기 값을 bean에 넣는 것은 매우 불편합니다. 반대로 JAXB는 훨씬 쉽게 작업 할 수 있습니다.XmlPullParser : 원시 XML 가져 오기/다시 생성
또한 직렬화의 경우 문자열을 수동으로 연결하는 "구식이고 오류가 발생하기 쉬운 방법"입니다. (또한 동의어를 요약 한 http://babbler-xmpp.blogspot.co.at/2014_01_01_archive.html의 동기 부여 참조).
그러나 역 직렬화에 JAXB를 사용하려면 원시 XML 문자열을 얻어야합니다. 물론, XmlPullParser의 파싱 메서드 (예 : getName()
, getText()
, getAttributes()
...)를 사용하여 전체 XML 문자열을 재구성하는 것이 한 가지 방법입니다. 그러나 저는 이것을 피하고 싶습니다.
그래서 특정 태그 (예 : XmlPullParser가 현재 가리키고있는 곳)의 전체 원시 XML 문자열을 가져올 수 있습니까? 또는 누군가가 XmlPullParser 인스턴스의 XML을 재구성하는 유틸리티를 알고 있습니까?
당신은 XmkPullParser 어떤 리더를 전달하는 것 같습니다? 왜 모든 것을 두 번 읽지 않는가? POJO hieratchy를 생성하기 위해 JAXB를 사용하려는 경우 : XML을 풀 해석하는 목적은 무엇입니까? – laune
문제는 원시 XML 스트림을 나타내는 Reader에 대한 액세스 권한이 없다는 것입니다. 프레임 워크 (Smack)에서 내 사용자 지정 확장에 전달 된 XmlPullParser 만 있습니다. – MrD