栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JAXB处理设计不良的XML

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JAXB处理设计不良的XML

如果要

s#
作为集合处理这些项目:

import java.io.Serializable;import java.util.List;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name="xx")public class XMLXx implements Serializable {    private static final long serialVersionUID = 4064597372833234503L;    private List<XMLSite> sites;    @XmlElement(name="s")    public List<XMLSite> getSites() {        return sites;    }    public void setSites(List<XMLSite> sites) {        this.sites = sites;    }}

然后,你可以不喜欢愚弄JAXB以为所有元素(

s1
s2
等)实际上是被称为
s

import java.io.FileInputStream;import javax.xml.bind.JAXBContext;import javax.xml.bind.Unmarshaller;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamReader;import javax.xml.stream.util.StreamReaderDelegate;public class Demo {    public static void main(String[] args) throws Exception {        JAXBContext jc = JAXBContext.newInstance(XMLXx.class);        XMLInputFactory xif = XMLInputFactory.newInstance();        XMLStreamReader xsr = xif.createXMLStreamReader(new FileInputStream("input.xml"));        xsr = new SiteStreamReaderDelegate(xsr);        Unmarshaller unmarshaller = jc.createUnmarshaller();        XMLXx object = (XMLXx) unmarshaller.unmarshal(xsr);        System.out.println(object.getSites().size());    }    private static class SiteStreamReaderDelegate extends StreamReaderDelegate {        public SiteStreamReaderDelegate(XMLStreamReader xsr) { super(xsr);        }        @Override        public String getLocalName() { String localName = super.getLocalName(); if(localName.startsWith("s")) {     return "s"; } return localName;        }    }}

有关类似的示例,请参见:

  • http://bdoughan.blogspot.com/2010/12/case-insensitive-unmarshalling.html


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438856.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号