同问Xstream解析XML文件的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同问Xstream解析XML文件的问题相关的知识,希望对你有一定的参考价值。
检举|2012-07-24 16:18提问者:a30501139|悬赏分:30|浏览次数:147次
<cat age="4" name="Garfield">
<owner class="StandardPerson">Jon Arbuckle</>
</cat>
XStream xstream = new XStream();
xstream.alias("cat", Cat.class);
xstream.alias("owner", Owner.class);
xstream.aliasAttribute(Cat.class, "age", "age");
xstream.aliasAttribute(Cat.class, "name", "name");
xstream.aliasAttribute(Owner.class, "class", "class");
Object o = xstream.fromXML(data);
return (Cat) o;
如果XML文件像这样的格式,那owner对象里的Jon Arbuckle应该怎么赋值取到??
这个您解决了吗?
try
JAXBContext context = JAXBContext.newInstance(ATS_IFS.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
ATS_IFS atsIfs = (ATS_IFS) unmarshaller.unmarshal(new ByteArrayInputStream(data
.getBytes()));
return atsIfs;
catch (JAXBException e)
e.printStackTrace();
return null;
data是xml的字符串,new ByteArrayInputStream(data.getBytes())你这里可以根据自己的需求来定义用什么inputStream。
ATS_IFS类必须要有注释
具体的你可以查一下jaxb,例子很多追问
我用xstream解决了,网上有例子,找到了,先不看明白。谢谢了。
来自:求助得到的回答 参考技术A 你直接在你的Cat里定义个owen你就直接可以用cat.owen就可以Xstream 解析xml文件内容
刚刚接手的一个项目,接到一个对接用户数据的需求,对方使用的是xml格式来传输文件,特此记下解析该类文件的方法
public interface XmlResolver<T> {
XStream builder();
default T parse(String xml){
return (T) builder().fromXML(xml);
}
default T resolver(String xml){
return parse(xml);
}
}
//测试类
public class TestMain {
private String name;
private String address;
private List<TestPerson> personList;
public static void main(String[] args) {
XmlResolver<TestMain> testMainXmlResolver = () -> {
{
XStream xStream = new XStream();
xStream.alias("GetInvoiceResult", TestMain.class);
xStream.alias("ItemRecord", TestPerson.class);
return xStream;
}
};
String xml = "<GetInvoiceResult>\n" +
" <name>string</name>\n" +
" <address>string</address>\n" +
" <personList>\n" +
" <ItemRecord>\n" +
" <name>string</name>\n" +
" <age>string</age>\n" +
" </ItemRecord>\n" +
" <ItemRecord>\n" +
" <name>string</name>\n" +
" <age>string</age>\n" +
" </ItemRecord>\n" +
" </personList>\n" +
" </GetInvoiceResult>\n"
;
TestMain testMain = testMainXmlResolver.parse(xml);
System.out.println(testMain);
}
}
以上是关于同问Xstream解析XML文件的问题的主要内容,如果未能解决你的问题,请参考以下文章