我收到一个XML响应,其属性包含以下值:
Wed Sep 05 10:56:13 CEST 2012
Run Code Online (Sandbox Code Playgroud)
我在我的模型类中定义了一个带注释的字段:
@Attribute(name = "regDate")
private Date registerDate;
Run Code Online (Sandbox Code Playgroud)
但是它引发了一个例外:
java.text.ParseException: Unparseable date: "Wed Sep 05 10:56:13 CEST 2012" (at offset 0)
Run Code Online (Sandbox Code Playgroud)
是否可以在SimpleFramework注释中定义日期格式?
该日期字符串应包含哪种格式?
我正在尝试使用Android中的SimpleXML解析XML Feed:http://backend.deviantart.com/rss.xml? type = defiation&q = by%3Aspyed+sort%3Atime+meta% 3Aall
样品在这里:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<title>DeviantArt: spyed's</title>
<link>http://www.deviantart.com/?order=5&q=by%3Aspyed</link>
<description>DeviantArt RSS for sort:time by:spyed</description>
<language>en-us</language>
<copyright>Copyright 2015, DeviantArt.com</copyright>
<pubDate>Thu, 20 Aug 2015 07:45:31 PDT</pubDate>
<generator>DeviantArt.com</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<atom:icon>http://st.deviantart.net/minish/touch-icons/android-192.png</atom:icon>
<atom:link type="application/rss+xml" rel="self" href="http://backend.deviantart.com/rss.xml?q=sort%3Atime+by%3Aspyed&type=deviation" />
<atom:link rel="next" href="http://backend.deviantart.com/rss.xml?q=sort%3Atime+by%3Aspyed&type=deviation&offset=60" />
<item>
<title>Happy 15th Birthday!</title>
<link>http://spyed.deviantart.com/journal/Happy-15th-Birthday-552416478</link>
<guid isPermaLink="true">http://spyed.deviantart.com/journal/Happy-15th-Birthday-552416478</guid>
<pubDate>Sun, 09 Aug 2015 01:41:54 PDT</pubDate>
<media:title type="plain">Happy 15th Birthday!</media:title>
<media:keywords />
<media:rating>nonadult</media:rating>
<media:category label="Personal">journals/personal</media:category>
<media:credit role="author" scheme="urn:ebu">spyed</media:credit>
<media:credit role="author" scheme="urn:ebu">http://a.deviantart.net/avatars/s/p/spyed.gif</media:credit>
<media:copyright …Run Code Online (Sandbox Code Playgroud) 我正在使用Maven作为构建工具开发Android应用程序.我设法正确设置了evertyhing(maven依赖项被导出到apk等),但是我还有一个问题让我发疯.
我想在我的POM文件中包含对simpleframework的xml解析器的依赖,如下所示:
<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
<version>2.5.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当我mvn install在项目上发布时,我收到以下错误(截断):
trouble processing "javax/xml/namespace/NameSpaceContext.class" ...
Run Code Online (Sandbox Code Playgroud)
我知道引用这些javax类的简单xml解析器的错误结果,但我还没有找到解决方案(设置--core-library标志是没用的).
我目前正试图用maven-jarjar-pluging重新打包依赖,但这似乎也不起作用.
任何人都可以帮我解决这个问题吗?很多,非常感谢提前!
我正在尝试使用Simple XML在我的Android应用程序中将我的java对象转换为XML格式.
我在线上得到NoClassDefFoundError
Serializer serializer = new Persister();
Run Code Online (Sandbox Code Playgroud)
java.lang.NoClassDefFoundError:org.simpleframework.xml.core.Persister
我有simple-xml-2.6.1.jar项目类路径,当我得到时,NoClassDefFoundError我也把这3个罐放在classpath中
stax-1.2.0.jar
stax-api-1.0.1.jar
xpp3-1.1.3_8.jar
Run Code Online (Sandbox Code Playgroud)
但是毫无用处.
还有NoClassDefFoundError.
任何形式的帮助将不胜感激.谢谢.
我在Android上使用SimpleXml来反序列化我无法控制的xml.现在,每次xml更改时,它都会对我的应用程序进行制动,因为我没有在对象类中定义新元素.有没有办法可以指定SimpleXML来忽略这些错误图?看了一下文档,找不到任何可以帮我解决的问题.
我使用org.simpleframework.xml来处理Android应用程序的一些xml任务,并遇到以下错误,我无法弄清楚.
org.simpleframework.xml.core.PersistenceException: Element 'album' is already used with @org.simpleframework.xml.ElementList(inline=false, name=album, entry=, data=false, empty=true, required=true, type=void) on field 'albums' private java.util.List us.blah.sonar.xsd.simple.AlbumList.albums at line 5
at org.simpleframework.xml.core.Variable$Adapter.read(Variable.java:484)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:613)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
Run Code Online (Sandbox Code Playgroud)
以下是我试图解组的XML示例:
<albumList>
<album id="3985" parent="3301" title="Bob Dylan - The Reissue Series Sampler" album="Bob Dylan - The Reissue Series Sampler" artist="48 - Masked and Anonymous [BSO] (2003)" isDir="true" created="2011-12-09T11:52:12"/>
<album id="3986" parent="3301" title="Soundtrack - Masked & Anonymous" album="Soundtrack - Masked & Anonymous" artist="48 - Masked and Anonymous [BSO] (2003)" isDir="true" coverArt="3986" …Run Code Online (Sandbox Code Playgroud) 我使用Retrofit2 converter-simplexml库,当我使用converter-gson时代码运行成功,但是当我添加simplexmlConverter时,我得到了一个异常:
java.lang.IllegalArgumentException: Unable to create converter for java.util.List<com.rengwuxian.rxjavasamples.model.ZhuangbiImage>
Caused by: java.lang.IllegalArgumentException: Could not locate ResponseBody converter for java.util.List<com.rengwuxian.rxjavasamples.model.ZhuangbiImage>.
Run Code Online (Sandbox Code Playgroud)
这是我试图执行复古http请求的地方:
private void search(String key) {
subscription = getZhuangbiApi()
.search(key)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
}
public static ZhuangbiApi getZhuangbiApi() {
if (zhuangbiApi == null) {
Retrofit retrofit = new Retrofit.Builder()
.client(okHttpClient)
.baseUrl(baseUrl)
.addConverterFactory(simpleXmlConverterFactory)
.addCallAdapterFactory(rxJavaCallAdapterFactory)
.build();
zhuangbiApi = retrofit.create(ZhuangbiApi.class);
}
return zhuangbiApi;
}
Run Code Online (Sandbox Code Playgroud)
我的界面变成了我的API
public interface ZhuangbiApi {
@GET("merchant/list")
Observable<List<ZhuangbiImage>> search(@Query("app_code") String appCode);
}
Run Code Online (Sandbox Code Playgroud)
和壮比图像课
@Root(name = "item")
public class ZhuangbiImage {
@Element(name …Run Code Online (Sandbox Code Playgroud) 我正在使用Simple XML库来处理Android应用程序中的XML文件.这些文件可以变得非常大 - 大约1Mb,并且可以非常深入地嵌套,因此它们相当复杂.
当应用程序通过Simple API加载其中一个文件时,最多可能需要30秒才能完成.目前我正在将FileInputStream传递给Simple的Persister类的[read(Class,InputStream)] [2]方法.实际上,它只读取XML节点并将数据映射到模型对象的实例,从而在内存中复制XML树结构.
我的问题是如何改善Android的性能?我目前的想法是将文件的内容读入字节数组,并将ByteArrayInputStream传递给Persister的read方法.我想处理文件的时间会更快,但我不确定节省的时间是否会被首先读取整个文件所花费的时间所抵消.内存限制也可能是一个问题.
这是傻瓜差事吗?在这种情况下,我还能做些什么来提高性能吗?如果不是,我将不得不求助于改进用户对加载文件的进度的反馈.
一些警告:
1)我无法更改我正在使用的XML库 - 有问题的代码是在桌面,移动和Web应用程序中使用的"引擎"的一部分.改变它的开销对于时间来说太过分了.
2)数据文件由用户创建,因此我无法控制嵌套的大小/深度.
我有这个数据结构:
<estates version="0.1">
<provider name="Foo">
<estate id="12345678">
<description>aaa</description>
<size>300</size>
</estate>
<estate id="12345679">
<description>bbb</description>
<size>450</size>
</estate>
</provider>
<provider name="Bar">
<estate id="987654321">
<description>yyy</description>
<size>100</size>
</estate>
<estate id="987654320">
<description>zzz</description>
<size>240</size>
</estate>
</provider>
</estates>
Run Code Online (Sandbox Code Playgroud)
我从我的网络服务获得.我想使用simple-xml库来实例化Android"Estates","Provider"和"Estate"类.
Class Estates.java:
@Root
public class Estates {
@ElementList
private List<Estate> providers;
@Attribute
private String version;
}
Run Code Online (Sandbox Code Playgroud)
Class Estate.java:
public class Estate {
@Attribute
private String id;
@Element(required=false)
private String description;
@Element(required=false)
private Integers size;
}
Run Code Online (Sandbox Code Playgroud)
即,我使用@ElementList(List<Estate> providers)为提供者,但这样我只能使用一个提供者列表(有两个列表,如我的例子,给出:
"ERROR/com.simplexml.XmlActivity(4266):未捕获的异常:org.simpleframework.xml.core.PersistenceException:元素'providers'在第1行声明了两次").
更多,我无法获得"名称"属性.在实践中,我想我必须解雇" List<Estate> providers"方法,但如何更换它?我应该使用"收藏品"吗?
我尝试使用简单的序列化嵌入式集合.例如 :
Map<String, List<MyClass>>
Run Code Online (Sandbox Code Playgroud)
我已经在MyClass中添加了必要的注释,我尝试使用@ElementMap但它不起作用:
Exception in thread "main" org.simpleframework.xml.transform.TransformException: Transform of class java.util.ArrayList not supported
如果它只是
@ElementMap Map<String, MyClass>
Run Code Online (Sandbox Code Playgroud)
它工作正常.我不知道如何处理嵌入式收藏.我知道@ElementList注释但在这种情况下不知道如何使用它.任何提示?
simple-framework ×10
android ×7
java ×7
xml ×3
collections ×1
date ×1
jarjar ×1
maven ×1
retrofit ×1
rss ×1