我试图通过Retrofit
2使用SimpleXML来使用XML。在与Kotlin进行了数小时的挣扎之后,我决定尝试Java版本,然后再转换为Kotlin。Java版本运作良好…
错误:
java.lang.RuntimeException: org.simpleframework.xml.core.MethodException: Annotation @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=true, name=entry, required=true, type=void) must mark a set or get method
我需要一个能够使用该XML的Kotlin模型类。输入如下:
<feed>
<entry>
<id> someid </id>
<published> somedate </published>
</entry>
<entry>
<id> someid2 </id>
<published> somedate2 </published>
</entry>
</feed>
Java模型类版本(工作正常):
@Root(name = "feed", strict = false)
public class MFeed {
@ElementList(name = "entry", inline = true)
private List<MEntry> entriesList;
public MFeed(List<MEntry> entriesList) {
this.entriesList = entriesList;
}
public MFeed() {
}
public List<MEntry> getEntriesList() {
return entriesList;
}
public void setEntriesList(List<MEntry> entriesList) {
this.entriesList = entriesList;
}
}
@Root(name = "entry", strict = false)
public class MEntry {
@Element(name = "id")
private String id;
@Element(name = "published")
private String published;
public MEntry() {
}
public MEntry(String id, String published) {
this.id = id;
this.published = published;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPublished() {
return published;
}
public void setPublished(String published) {
this.published = published;
}
}
自动生成的Kotlin模型如下所示:
@Root(name = "feed", strict = false)
class Feed {
@ElementList(name = "entry", inline = true)
private var entriesList: List<MEntry>? = null
//autogenerated by converter java -> kotlin
constructor(entriesList: List<MEntry>) {
this.entriesList = entriesList
}
//autogenerated by converter java -> kotlin
constructor() {}
}
@Root(name = "entry", strict = false)
class Entry {
@Element(name = "id")
var id: String? = null
@Element(name = "published")
var published: String? = null
//autogenerated by converter java -> kotlin
constructor() {}
//autogenerated by converter java -> kotlin
constructor(id: String, published: String) {
this.id = id
this.published = published
}
}
我为使用XML列表而付出了很多,包括this。没有工作。也许它们已经过时了。有人遇到这样的问题吗?
尝试添加@field
到注释中@Element*
。您可以将属性移动到构造函数,也可以data
在类中添加修饰符。像这样:
@Root(name = "feed", strict = false)
data class Feed(
@field:ElementList(name = "entry", inline = true)
var entriesList: List<Entry>? = null
)
@Root(name = "entry", strict = true)
data class Entry(
@field:Element(name = "id")
var id: String? = null,
@field:Element(name = "published")
var published: String? = null
)
有了这个,我就成功地反序列化了xml:
import org.simpleframework.xml.Element
import org.simpleframework.xml.ElementList
import org.simpleframework.xml.Root
import org.simpleframework.xml.core.Persister
private val testXml = """
<feed>
<entry>
<id> someid </id>
<published> somedate </published>
</entry>
<entry>
<id> someid2 </id>
<published> somedate2 </published>
</entry>
</feed>
""".trimIndent()
@Root(name = "feed", strict = false)
data class Feed(
@field:ElementList(name = "entry", inline = true)
var entriesList: List<Entry>? = null
)
@Root(name = "entry", strict = true)
data class Entry(
@field:Element(name = "id")
var id: String? = null,
@field:Element(name = "published")
var published: String? = null
)
fun main(args: Array<String>) {
println(testXml)
val serializer = Persister()
val example = serializer.read(Feed::class.java, testXml)
println(example)
}
我正在尝试使用Transformition 2的SimpleXML使用XML。经过几个小时的Kotlin斗争,我决定尝试Java版本,然后转换为Kotlin。Java版本运行良好... 错误: 我需要一个能够使用XML的Kotlin模型类。输入如下: Java模型类版本(工作正常): 自动生成的静态编程语言模型如下所示: 我为使用XML列表提供了很多服务,包括这篇文章、这篇文章和这篇文章。没有一个
我一上午都在尝试,但没有结果。我好像不知道我做错了什么。我已经检查了两个链接(在许多其他没有帮助的链接中),还没有解决我的问题。这是WebUserControl... 收到以下错误: 类型为“TextBox”的控件“HeadContent_CareersViewPosting_TXTFirstName”必须放置在RUNAT=Server的表单标记内。 已经尝试了这里,这里和这里的建议,但没有结果。
我从Angular 2得到这个错误 core.umd。js:5995异常:未捕获(promise中):错误:app/model_exposure_currencies/model\u exposurement_curmencies.component中的错误。html:57:18原因:如果在表单标记中使用ngModel,则必须设置name属性,或者必须在ngModelOptions中将表单控件定义
更新-使用MSbuild运行程序,我们看到以下错误 我们在声纳中设置了属性。项目属性声纳。反恐精英。警察。fxCopCmdPath=C:\Program Files(x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd。exe C#插件-4.1 MsBuild Runner-1.0 Son
问题内容: 最近,我做了一个Netbeans项目,并且正在使用SVN。我看到重复的类错误,并且在控制台中显示 这是PieChartExplorer.java: 我努力了: 清理并重建项目 确保我在所有构造函数中都调用了super 如何解决?下载代码。 问题答案: 前几天我看到了这些症状。 我有我一直在编辑的文件,因此决定将更改分为2个提交。我进入了包含我的文件“ x / y / Z.java”的目
我有两个组件。 彩虹。jsx 彩虹列表.jsx 雨弓.jsx 是具有数组和雨弓列表.jsx 的主要组件,我用它来用 map() 以 li 格式显示所有彩虹色。 我在控制台日志中得到错误消息ShowRainBow。状态:必须设置为对象或null 我的代码 彩虹. jsx RainBowList.jsx