当前位置: 首页 > 知识库问答 >
问题:

JaxB:推荐在非WebService项目中使用JaxB从xml获取Java对象吗

龙令雪
2023-03-14

我正在尝试使用SAX和DOM解析器来解析我庞大的xml。DOM解析器占用了大量内存,SAX解析器的实现让我用它们的名字检查一些嵌套标记,这花费了大量时间,而且看起来效率不高。

我使用JAXB解析了xml,并对其进行了Java对象,并且从getter中获取值(类是使用xml文件的XSD生成的)

JAXBContext JAXBContext=JAXBContext.newInstance(MyClass.Class);
Unmarshaller jaxbUnmarshaller=JAXBContext.createUnmarshaller();

InputStream in=new ByteArrayInputStream(XmlData.GetBytes());Myclass classobject=(Myclass)JaxBunMarshaller.Unmarshal(in);

classobject给了我想要的东西。

我的项目不是webservice项目,所以我的问题是:Java项目推荐使用JAXB吗?从技术上讲,我也不解析xml(JAXB附带DOM和SAX),所以它的解组就是解析?

共有1个答案

拓拔浩阔
2023-03-14

是的,JAXB可以(并且经常)在Java SE中用于非Web服务应用程序。它包含在Java SE 6中。

正确的XML处理器(DOM、SAX、StAX、JAXB、XPath等)取决于您试图构建的内容。而且,它不需要是一个“非此即彼”的选择,因为许多这些API都是设计用来协同工作的。

 类似资料:
  • 问题内容: 如何使用下面的代码解组XML字符串并将其映射到下面的JAXB对象? 问题答案: 要传递XML内容,您需要将内容包装在中,然后将其解组:

  • 我想使用XML有效载荷,比如: 另一种有效载荷是: 所以我想为创建一个类,其中包含和一个,我可以在其中放置不同类型的对象,所以我尝试了多种类型的对象一个带有的类,但它不允许我具有相同的名称 在这种情况下我能做什么?提前感谢。

  • 这是我的xml: 我为这个xml使用了JAXB和unMarshall,我可以得到描述和外部密钥。但是我不能得到有价值的属性名称。 > 这是我的java类: 组织JAVA 银行JAVA 如何获取属性名称和值?谢谢你

  • 我试图将我下面的xml转换为java对象。 这是我的xml: 我需要在"提供者组织"下获取"name"的值。下面是我Java课。 诊所ocument.java 记录目标。JAVA 病人ole.java 供应商组织。JAVA XMLFileParserSAXUtility.java 我得到的结果是 如果我尝试打印syso(临床文件); 结果是临床文档[recordTarget=null] 请帮帮我!

  • 我有以下XML,需要将其转换为java对象。 我不确定当我使用JAXB转换它时,我的pojo将是什么。 根据我的理解,我创建了以下POJO: 请帮帮我。提前感谢。

  • 是否有任何JAXB绑定可以告诉JAXB代码生成器将Java类生成为,而不必在XSD中将相应的XML类型标记为? 情况如下: > 我在xsd中定义架构: 我使用内联JAXB绑定(“inline”==“直接在模式中”)来指示应该生成JAXB类的包(): 我使用内联JAXB绑定为我的每个复杂类型(在本例中、和)指示实现类的名称: 我从模式生成JAXB类。这导致: 我自己编写类: 使用这两个类层次结构这样