컴파일 된 Android XML 리소스에 액세스해야 할 때 컴파일 된 이진 파일을 제공하기 때문에 openRawResource(resId)
을 사용할 수없는 것 같습니다.Android XmlResourceParser를 편리하게 사용 하시겠습니까?
XML을 얻는 유일한 방법은 XmlResourceParser
(XmlPullParser
구현)을 반환하는 getXml(resId)
을 사용하는 것입니다.
Android 리소스에서 복잡한 컴파일 된 XML을 (비싸지는 않지만) 간편하게 비 직렬화 할 수 있습니까?
은 내가 Simple XML 프레임 워크 해킹 시도 : (. 위의 스칼라 코드를 단순화)
val serializer = new Persister()
serializer.read(classOf[AFoo],
new NodeReader(new PullReader(r.getXml(resId))).readRoot)
을
를 실패 그러나 :
java.lang.RuntimeException: getPrefix not supported
at android.content.res.XmlBlock$Parser.getPrefix(XmlBlock.java:156)
at org.simpleframework.xml.stream.PullReader$Start.<init>(PullReader.java:373)
at org.simpleframework.xml.stream.PullReader.start(PullReader.java:143)
at org.simpleframework.xml.stream.PullReader.read(PullReader.java:109)
at org.simpleframework.xml.stream.PullReader.read(PullReader.java:117)
at org.simpleframework.xml.stream.PullReader.next(PullReader.java:89)
at org.simpleframework.xml.stream.NodeReader.readElement(NodeReader.java:111)
at org.simpleframework.xml.stream.NodeReader.readRoot(NodeReader.java:85)
- 가 어떤인가
getPrefix
을 호출하지 않는 XML 디시리얼라이저? XmlPullParser
에서Node
트리를 만드는 기존 스칼라 라이브러리가 있습니까? (따라서 Scala 투영 함수를 사용하여 쿼리 할 수 있습니다.)- 작지만 복잡한 컴파일 된 XML을 리소스에서 읽는 방법에 대한 다른 힌트가 있습니까?
어디 - 당신이 입술에 저장 시도/원료? 그래서 직접 액세스 할 XML 문서를 저장하는 방법입니다. 스키마/스타일 시트 저장시 주름은 확장이 'xml'이어야한다는 것입니다. 파일 이름에 실제 확장명을 추가하는 것입니다 .... 그래서 indent.xsl은 xsl_indent.xml이됩니다. –