我有一个XML,它具有以下格式(简化示例)
<Service id = "1">
<Message>
<options id="standard">
<option name="autorendered">
<value> 1</value>
</option>
<option name="environment">
<value> V</value>
</option>
<option name="document_name">
<value> Mail - MY Test Mail2.pdf</value>
</option>
<option name="document_provider">
<value> LNotes</value>
</option>
</options>
</Message>
</Service>
<Service id = "2">
<Message>
<options id="standard">
<option name="autorendered">
<value> 4</value>
</option>
<option name="environment">
<value> V</value>
</option>
<option name="document_name">
<value> attachment1.jpg</value>
</option>
<option name="document_provider">
<value> LNotes</value>
</option>
</options>
</Message>
</Service>
现在,当我使用JAXB并创建映射类时,它正常工作。但我需要Message标签的值,无论它们之间是什么字符串,但如果我这样做,它返回空值。
但如果我有一个像hello这样的标签并使用service.getMessage()
,它会正确地返回hello
。
我希望service.getMessage以字符串形式返回<options>.....</option>
。
如果在JAX-B中不可能,请向我推荐一些其他类似Jaxpath,Xpath,Stax或其他一些std认可的方法。
我的服务类看起来像这样 -
public class Service {
private Request request;
@XmlElement(name = "Request")
public Request getRequest() {
return request;
}
public void setRequest(Request edmsRequest) {
this.request = request;
}
}
答案 0 :(得分:0)
当JAXB创建POJO时,您是否有足够的方法可以根据需要创建字符串?
您可以创建一个实用程序方法来执行相同操作。
答案 1 :(得分:0)
@XmlAnyElement
注释可用于将XML文档的某些部分保留为生成的对象结构中的XML。 @XmlAnyElement
注释允许您设置DomHandler
,它允许您控制XML的表示方式:DOM,String等。
<强>实施例强>