Java 如何鼓励JAXB读取XmlElement内容字符串?
当我试图解析如下消息时,我没有收到“通知”:Java 如何鼓励JAXB读取XmlElement内容字符串?,java,xml,jaxb,Java,Xml,Jaxb,当我试图解析如下消息时,我没有收到“通知”: <?xml version="1.0" encoding="UTF-8"?> <message messageType="SUBSCRIBER" messageName="ANNOUNCEMENT"> <announcement time="12:30"> Lunchtime! </announcement> <announcement time
<?xml version="1.0" encoding="UTF-8"?>
<message messageType="SUBSCRIBER" messageName="ANNOUNCEMENT">
<announcement time="12:30">
Lunchtime!
</announcement>
<announcement time="32:00">
Good night ...
</announcement>
<errorText>Phone number missing, subscriber: Dick</errorText>
</message>
在中为XmlElement使用name参数似乎没有什么区别。提前向您致谢。将注释用于邮件文本:
@XmlValue
public String getMessageText(){
return this.messageText;
}
此外,如OP中所述,如果
公告
类包含未映射到XML或未从XML映射的getter/setter对,并且没有@XmlTransient
注释,则该类上需要@XmlAccessorType(XmlAccessType.NONE)
。。我认为这不是复制品。每个问题都有一个不同的XML数据包。这是一个有效的方法。这个类应该是相同的,但它不是。我解析属性,而不是XmlValue。@BlaiseDougan同意OP的说法,这不是重复的。投票重新开放。是的,这是答案的一部分。在前面的问题中添加了更完整的解决方案:问题。这个问题很有趣。。。我注意到了。谢谢你的反馈。我会更新我的答案。
@XmlRootElement(name = "announcement")
public class Announcement
{
private String messageText = "";
private String time = "12:00";
XmlAttribute(name ="time")
public String getTime(){
return this.time;
}
public void setTime( String newMsg ){
this.messageText = time;
}
@XmlElement(name="announcement")
public String getMessageText(){
return this.messageText;
}
public void setMessageText( String newMsg ){
this.messageText = newMsg;
}
Announcement(){
}
}
@XmlValue
public String getMessageText(){
return this.messageText;
}