4 java xml android simple-framework
我有这个文件XML:
<Name xml:lang="en">English</Name> <Name xml:lang="it">Italian</Name>
Run Code Online (Sandbox Code Playgroud)
而我的班级:
@Element
@Namespace(reference = "en", prefix = "lang")
public class Name {
@Text
private String title;
@Override
public String toString() {
return title.toUpperCase() + "\n";
}
Run Code Online (Sandbox Code Playgroud)
为什么当我做toString时,它不会只打印英文名字?
TNKS
你班上有些不对劲:
@Root用于课程,而不是@Element@Namespace是为类设置的,而不是属性如果您将类序列化为xml,您将得到如下内容:
<lang:name xmlns:lang="en">Example</lang:name>
Run Code Online (Sandbox Code Playgroud)
- >与您的输入不匹配.
这是一个更正版本:
@Root(name = "Name")
public class Name
{
@Text()
private String text;
@Attribute(name = "lang")
@Namespace(prefix = "xml", reference = "") // Add your reference here!
private String attr;
@Override
public String toString()
{
return text.toUpperCase() + "\n";
}
}
Run Code Online (Sandbox Code Playgroud)
这序列化为:
<name xml:lang="en" xmlns:xml="">English</name>
Run Code Online (Sandbox Code Playgroud)
请注意,还没有参考设置 - 但您可以忽略它的属性.
现在你将获得一个Name对象.但是,您的xml包含这些列表.因此,您需要另一个映射此列表的类:
@Root(name = "Names")
public class NameList
{
@ElementList(name = "Names", inline = true)
private List<Name> names;
}
Run Code Online (Sandbox Code Playgroud)
对于测试,您也可以序列化:
<Names>
<Name xml:lang="en" xmlns:xml="">English</Name>
<Name xml:lang="it" xmlns:xml="">Italian</Name>
</Names>
Run Code Online (Sandbox Code Playgroud)
请注意那些标签.
这非常接近你的输入; 记住:xmlns:xml- 参考 - 可以忽略.所以只需更正你的xml.假设你有一个父元素Names:
<Names>
<Name xml:lang=\"en\">English</Name>
<Name xml:lang=\"it\">Italian</Name>
</Names>
Run Code Online (Sandbox Code Playgroud)
最后的测试现在:
final String xml = "<Names>"
+ "<Name xml:lang=\"en\">English</Name>"
+ "<Name xml:lang=\"it\">Italian</Name>"
+ "</Names>";
Serializer ser = new Persister();
NameList names = ser.read(NameList.class, xml);
System.out.println(names);
Run Code Online (Sandbox Code Playgroud)
两个条目都被反序列化为正确的names.使用另一种toString()方法,我得到这个:
NameList{names=[Name{text=English, attr=en}, Name{text=Italian, attr=it}]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1678 次 |
| 最近记录: |