使用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 <b>mixed</b> with tags
但是源XML中需要有未转义的标记。
谢谢,迈克
您可以使用@XmlAnyElement
注释并指定DOMHandler来将DOM片段转换为字符串值。
完整示例
- http://blog.bdoughan.com/2011/04/xmlanyelement-and-non-dom-properties.html