2

使用 MOXy 2.3.1,但如果有帮助可以升级。

我有以下 XML:

<myelement>
text content <b>mixed</b> with tags
</myelement>

我希望将其存储在包含以下内容的字符串字段中:

text content <b>mixed</b> with tags

我一直在想我需要在 MOXy 中使用 XML 转换功能,我的代码如下所示:

// Not a root element, it's own mapping annotation
// is defined in another class.
@XmlAccessorType(XmlAccessType.NONE)
class MyElement {

    @XmlTransformation
    @XmlReadTransformer(transformerClass=TempTrans.class)
    @XmlValue
    String markup
}

public class TempTrans implements AttributeTransformer {

    private AbstractTransformationMapping mapping;

    public void initialize(AbstractTransformationMapping mapping) {
        this.mapping = mapping;
    }

    public Object buildAttributeValue(Record record, Object instance, Session session) {
        return null;
    }
}

我一直在调试返回 null;行以查看映射对象中对我可用的内容。我还没有发现它很有用,我在正确的轨道上吗?

我希望有一种类似于 XStream 的HierarchicalStreamReader的机制,让我可以像 DOM 一样访问源 XML。任何解决方法将不胜感激。

我不介意结束:

text content &lt;b&gt;mixed&lt;/b&gt; with tags

但是源 XML 需要在其中包含未转义的标记。

谢谢,迈克

4

1 回答 1

4

您可以使用@XmlAnyElement注释并指定 DOMHandler 将 DOM 片段转换为字符串值/从字符串值转换。

对于一个完整的例子

于 2013-01-03T10:57:49.630 回答