用MOXy解析混合标记,可能使用transformer



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

我有以下XML:

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

我想存储在String字段中,其中包含:

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中需要有未转义的标记。

谢谢,迈克

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

完整示例

  • http://blog.bdoughan.com/2011/04/xmlanyelement-and-non-dom-properties.html

相关内容

  • 没有找到相关文章

最新更新