2014-01-17 147 views
2

我使用JAXB读取xml文件。我有以下结构JAXB忽略xml标记属性

<A> 
    <B value="some string" /> 
</A> 

我有以下型号

@XmlRootElement 
class A{ 
    @XmlElement(name = "B", required = true) 
    @XmlPath("B/@value") 
    String b; 
} 

我读了我的b实例变量在B标签值的属性。

但是在一些XML文件中,我在B标签之后有结构<#B/> 虽然JAXB解组文件,但我成为格式不正确的例外。 javax.xml.stream.XMLStreamException:ParseError在[行,列]:[19.4]

回答

1

您应该只是有没有@XmlElement注解如下:

@XmlRootElement 
class A{ 
    @XmlPath("B/@value") 
    String b; 
} 
+0

这是行不通的。我有一个标记<#B>,但正常的标准是。如果Parser看到标签<#B/>,他会抛出一个异常 –

+0

@SadikHasan - 你会得到什么异常? –

+0

javax.xml.bind.UnmarshalException - 带有链接的异常: [异常[EclipseLink-25004](Eclipse持久性服务 - 2.6.0.v20140107-a992a67):org.eclipse.persistence.exceptions.XMLMarshalException 异常说明:An解组文档时发生错误 内部异常:javax.xml.stream.XMLStreamException:ParseError at [row,col]:[19,4]。我发现异常,我可以看到它在解析的地方看到标签<#B>。 –