在我的项目中,我通过JaxB
对象生成了xml文件。现在我再次希望现在将解组作为JAXB
对象。当我试图解包时,它抛出了classcastException。
请查找我写的课程:
public class ReservationTest1 {
public static void main(String []args) throws IOException, JAXBException
{
JAXBContext jaxbContext = JAXBContext.newInstance(com.hyatt.Jaxb.makeReservation.request.OTAHotelResRQ.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
@SuppressWarnings("unchecked")
JAXBElement bookingElement = (JAXBElement) unmarshaller.unmarshal(
new FileInputStream("D://myproject//Reservation.xml"));
System.out.println(bookingElement.getValue());
}
}
你能给我提供一些有用的信息来解决这个问题吗。
为什么你会得到ClassCastException
如果被解组的对象是用@XmlRootElement
注释的,那么您将获得该类的实例,而不是JAXBElement
的实例。
FileInputStream xml = new FileInputStream("D://myproject//Reservation.xml");
OTAHotelResRQ booking = (OTAHotelResRQ) unmarshaller.unmarshaller.unmarshal(xml);
始终获取域对象
如果您总是希望接收域对象的实例,而不管域对象或JAXBElement
是否从散集操作中返回,则可以使用JAXBInsiSpector
。
FileInputStream xml = new FileInputStream("D://myproject//Reservation.xml");
Object result = unmarshaller.unmarshaller.unmarshal(xml);
OTAHotelResRQ booking = (OTAHotelResRQ) JAXBIntrospector.getValue(result);
始终获取JAXBElement
如果您希望始终接收JAXBElement的实例,您可以使用接受类参数的散集方法之一。
StreamSource xml = new StreamSource("D://myproject//Reservation.xml");
JAXBElement<OTAHotelResRQ> bookingElement =
unmarshaller.unmarshal(xml, OTAHotelResRQ.class);
了解更多信息
两天前,我犯了以下错误: 执行任务:[: app: assembleDebug] 配置项目:app registerResGeneratingTask已弃用,请使用registerGeneratedResFolders(FileCollection) 任务:app:buildInfoDebugLoader任务:app:preBuild-UP-DATE任务:core:preDebugBuild-up
我使用的是Spring,无法读取Spring.xml文件。Application ationContext上下文=new ClassPathXmlApplication ationContext("Spring.xml");向我显示此错误:造成原因:java.io.FileNotFoundExcture:类路径资源[Spring.xml]无法打开,因为它不存在 xml路径强调文本
本文向大家介绍python读取xml文件方法解析,包括了python读取xml文件方法解析的使用技巧和注意事项,需要的朋友参考一下 关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码。这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件。 什么是xml? xml即可扩展标记语言,它可以用来标记数据、定义数据类型,
问题内容: 我如何在Java或C中使用vtd-xml解析如下的xml文件? 任何帮助,将不胜感激。 谢谢 问题答案: 我想其中有些取决于您要如何解析文件。 这是一个“非生产”示例,其中使用了一些有用的技术,包括: XPath选择(此处仅使用“ / *”) 浏览所有同级节点 通过子节点向下看 使用AutoPilot将节点属性提取到地图中 希望能帮助到你 产生以下输出: 添加带有AutoPilot循环
如何在java或C中使用vtd xml解析如下xml文件? 任何帮助都将不胜感激。 谢谢
问题内容: 我从一个教程中获取了以下代码: 将被突出显示,并显示两个错误: 容器类型中的方法add(Component)不适用于参数(JLabel) 无法解析类型javax.swing.JComponent。从所需的.class文件间接引用它 作为Java的新手,我不太了解Eclipse试图告诉我什么。我该怎么做才能使其正常工作? 编辑:代码运行时没有一行,因此问题不在于找不到JFrame或JLa