gpt4 book ai didi

java - 使用 jaxb 的 XML 解析器

转载 作者:行者123 更新时间:2023-12-01 14:33:40 25 4
gpt4 key购买 nike

如何使用 jaxb 获取嵌套 xml 的对象。我有以下 XML -

<?xml version="1.0" ?>
<file>
<markups>
<markup>
<author>author</author>
<name>3w2fg</name>
<source>Mobile_iPad</source>
<createdOn>2013-05-20T11:22:23</createdOn>
<entities>
<entity>
<entityWdth>209</entityWdth>
<entityColor>
<red>127.5</red>
<green>0</green>
<blue>127.5</blue>
</entityColor>
<entityFillColor>
<red>227.5</red>
<green>0</green>
<blue>327.5</blue>
</entityFillColor>
<entityRadian>0</entityRadian>
<entityEndY>304</entityEndY>
<entityStX>438</entityStX>
<entityTypeCode>7</entityTypeCode>
<entityPageNo>1</entityPageNo>
<entityHt>183</entityHt>
<entityCenterX>542.5</entityCenterX>
<entityName>Rectangle</entityName>
<entityStY>121</entityStY>
<entityEndX>647</entityEndX>
<entityCenterY>212.5</entityCenterY>
</entity>
</entities>
</markup>
</markups>
<name>7987ab12-4915-49e5-8bbd-f98d6054ef6b.JPG</name>
<fileName>IMG_0008.JPG</fileName>
</file>

我正在使用 jaxb 对其进行解码,如下 -

JAXBContext jbContext = JAXBContext.newInstance(com.arc.markupinfo.generated.File.class);
com.arc.markupinfo.generated.ObjectFactory factory = new com.arc.markupinfo.generated.ObjectFactory();
com.arc.markupinfo.generated.File fileObj = factory.createFile();
Unmarshaller unmarshaller = jbContext.createUnmarshaller();
fileObj = (com.arc.markupinfo.generated.File) unmarshaller.unmarshal(new File(xmlLocation));
fileObj.getFileName();

该对象是使用除entityColor.Red ...和entityFillColor.Red ...之外的所有值创建的。这些值是0,0,0,而xml显示它具有正确的值

最佳答案

entityColor.Red ...和entityFillColor.Red ...的类型为int(Integer)。
使用 double (Double)、float (Float) 或 String 作为您的颜色在颜色对象中。

@XmlAccessorType(XmlAccessType.FIELD)
public class Entity
{
//...
private Color entityColor;
private Color entityFillColor;
//...
}

@XmlAccessorType(XmlAccessType.FIELD)
public class Color
{
private double red; // or float, or String
private double green; // or float, or String
private double blue; // or float, or String
}

您还可以用最简单的方法解码您的示例:

File file = javax.xml.bind.JAXB
.unmarshal(new java.io.File(xmlLocation),File.class);

关于java - 使用 jaxb 的 XML 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com