Jaxb解析XML转换为JavaBean忽略命名空间

1 /** 2 * 解析xml(忽略命名空间) 3 * 4 * @param cla 5 * @param content 6 * @return 7 * @throws JAXBException 8 * @throws ParserConfigurationException 9 * @throws SAXException 10 */ 11 public static Object unmarshall(Class<?> cla, String content) throws JAXBException, ParserConfigurationException, SAXException { 12 13 JAXBContext jaxbContext = JAXBContext.newInstance(cla); 14 Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); 15 StringReader reader = new StringReader(content); 16 17 SAXParserFactory sax = SAXParserFactory.newInstance(); 18 sax.setNamespaceAware(false); 19 XMLReader xmlReader = sax.newSAXParser().getXMLReader(); 20 21 Source source = new SAXSource(xmlReader, new InputSource(reader)); 22 Object o = unmarshaller.unmarshal(source); 23 24 return o; 25 }

先贴上代码

由于各种原因,很多特殊行业的自定义标准命名空间的URL访问不了,从而导致了Jaxb在将XML内容转换成JavaBean的时候,获取命名错误,而无法解析成功!

另一种情况,在XML中的节点属性中出现xsi:type、xml:lang等属性性,要求需要节点对应的对象要与设置的类型进行匹配,原本这是严格匹配XML节点格式的行为,是不错的方式;但在实际的操作中,这大大增加了数据模型,尤其是超大型数据模型的制作复杂程序,希望可以仅将节点与JavaBean进行匹配,相应的数据能填充到数据模型中就好

设置

SAXParserFactory.setNamespaceAware(false);

即可在转换时,忽略命名空间读取,忽略类型检查,完成数据转换

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

android应用架构经验及代码规范

应用的更新从服务器拿数据后要处理得到数据为空、解析错误、解析为空的情况,防止后台坏掉后进不去activity;用友盟等平台更新不能阻塞式强制更新,万一友盟维护了,应用就进不去了。命名规则布局中id的命名:尽量保证不同布局xml文件中不要有相同的id命名,不然ctrl想点进去的时候,不知道该跳转到哪个文件,当注释掉该控件后

java 解析xml

XOM参考:https://xom.nu/java利用XOM解析XML参考:http://blog.sodhanalibrary.com/2014/09/parsexmlusingjava.html.W0rOEjozbIUXOM解析XML为Java对象student_list.xml<?xmlver

.NET的命名空间

关于Namespace(命名空间)的使用在前面的程序中我们看到,我常用<%@ImportNamespace"System.Data"%,这是在引用M$为我们提供的Namespace,这和ASP不同的,我们在ASP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能。其实说白了,一个Namespace;就是一个组件。这个是关

SVG绘制饼状图

SVG绘制饼状图昨天学习了基本的SVG,下面是使用SVG绘制饼状图创建SVG空间创建SVG需要一个document.createElementNS()方法一个一个setAttribute()方法编写如下js,将会创建一个svg空间//创建一个XML命名空间varsvgns"http:

Hive(七)Hive参数操作和运行方式

Hive参数操作和运行方式1、Hive参数操作1、hive参数介绍​hive当中的参数、变量都是以命名空间开头的,详情如下表所示:命名空间读写权限含义hiveconf可读写hivesite.xml当中的各配置变量例:hivehiveconf

Jaxb解析XML转换为JavaBean忽略命名空间 - HelloWorld