我正在阅读一些XML数据(如果您熟悉它们,则为FXG文件).
部分数据具有不同的标签名称:
<varying_name1 scaleX="1.0046692" x="177.4" y="74.2"/>
<varying_name2 scaleX="1.0031128" x="171.9" y="118.9"/>
Run Code Online (Sandbox Code Playgroud)
我创建了一个名为Transforms的类来表示变量标记名称段中的数据.在我的JAXB类中保存我拥有的数据:
@XmlAnyElement(lax=true)
@XmlJavaTypeAdapter(TransformAdapter.class)
protected List<Transform> transforms;
Run Code Online (Sandbox Code Playgroud)
在我的适配器中,我尝试解组数据:
JAXBContext context = JAXBContext.newInstance(Transform.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Transform result = (Transform) unmarshaller.unmarshal(v);
Run Code Online (Sandbox Code Playgroud)
但是,我的代码在这里引发异常,因为我的元素上的根名称不同.这不是一个常数.我明白了:
unexpected element (uri:"http://ns.adobe.com/fxg/2008", local:"m6_mc"). Expected elements are (none)
Run Code Online (Sandbox Code Playgroud)
如何解析我的数据,就好像根元素具有预期的名称一样?
默认情况下,aa JAXB(JSR-222)实现将根据根元素确定要解组的类.这与通过@XmlRootElement
或@XmlElementDecl
注释提供的元数据相匹配.
或者你是一个采用类参数的unmarshal方法.这告诉JAXB你希望解组什么类.unmarshal的结果将是一个实例JAXBElement
,除了Java对象将包含根元素信息以备不时之需.
JAXBContext context = JAXBContext.newInstance(Transform.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Transform result = unmarshaller.unmarshal(v, Transform.class).getValue();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3868 次 |
最近记录: |