我正在尝试使用moxy将xml解组为对象.Below是xml的示例。
<root>
<name>
<firstname>value</firstname>
</name>
<address>value of address</address>
</root>
以下是我想要映射的课程。
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement(name="root")
@XmlAccessorType(XmlAccessType.FIELD)
public class Response {
@XmlPath("name/firstname/text()")
String name;
Address address;
}
class Address {
String addressline;
}
现在如何在XML中获取地址标记的值并将其绑定到类Address的地址行变量。
答案 0 :(得分:0)
您需要在@XmlValue
属性上使用addressline
注释。
@XmlAccessorType(XmlAccessType.FIELD)
class Address {
@XmlValue
String addressline;
}
答案 1 :(得分:0)
这是对此处链接的类似(但不是完全相同)问题的答案:
我们问题的解决方案也与此问题有关。对于上述问题,简短回答(as noted 那里)是将@ XmlValue 属性与getMessageText()一起使用,而不是@XmlElement。我已经使用了'XmlValue',它仍然无效,所以我恢复了XmlElement。
XmlValue不是that case中的完整解决方案。我们还发现我们需要:
显然是因为课堂上的其他东西。显然,JABX尝试将每个get / set属性与XML匹配,显然它很混乱,如果存在非XML POJO属性(我推断),则不能或不会处理我的XmlValue。
@XmlAccessorType( XmlAccessType.NONE )
@XmlRootElement(name = "announcement")
public class Announcement
{
...
@XmlValue
public String getMessageText(){
return this.messageText;
}
}
经验教训。如果您的JAXB没有按照您认为的那样做,我已经把它弄糊涂了。感谢您的帮助,知道需要做什么,让我们找到我们还需要的其他东西。