1

我有一个具有以下格式的 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 和 use 这样的标签service.getMessage(),它会正确地返回我hello

<options>.....</option>我希望 service.getMessage作为字符串返回。

如果在 JAX-B 中不可能,请建议我使用其他方法,例如 Jaxpath、Xpath、Stax 或其他一些标准公认的方法。

我的服务类看起来像这样 -

public class Service {      
    private Request request;

    @XmlElement(name = "Request")
    public Request getRequest() {
        return request;
    }

    public void setRequest(Request edmsRequest) {
        this.request = request;
    }

}
4

2 回答 2

0

当 JAXB 创建 POJO 时,是否有一个方法可以根据需要创建字符串?
您可以创建一个实用程序方法来做同样的事情。

于 2012-09-17T09:00:06.127 回答
0

@XmlAnyElement注释可用于在生成的对象结构中将 XML 文档的部分保留为 XML 。@XmlAnyElement注释允许您设置一个DomHandler允许您控制 XML 的表示方式:DOM、String 等。

例子

于 2012-09-17T10:55:34.450 回答