java MOXy@XmlPath子元素文本
我使用MOXy将对象封送到xml。 我试图将两个属性映射为子元素,每个子元素都有第二个鉴别器元素(不是属性),如下所示:
<person>
<name>
<type>First</type>
<value>John</value>
</name>
<name>
<type>Last</type>
<value>Smith</value>
</name>
</person>
我的班级是这样绘制的:
@XmlRootElement
public class Person {
@XmlPath("name[type/text()='First']/value/text()")
private String fistName;
@XmlPath("name[type/text()='Last']/value/text()")
private String lastName;
}
我得到了以下错误:
Exception [EclipseLink-25016] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: A namespace for the prefix type/ns0:text() was not found in the namespace resolver.
我还尝试向xpath中添加名称空间,但没有引发异常,但是xml中没有type元素
通常,当我想用属性而不是元素来实现这一点时,我会映射:
@XmlPath("name[@type='First']/value/text()")
private String fistName;
@XmlPath("name[@type='Last']/value/text()")
private String lastName;
它工作完美无瑕,有没有办法用一个简单的xpath获得我期望的结果
# 1 楼答案
在xml中,有两个带有“First”的元素,可以尝试使用First和Last吗