【问题标题】:Parsing Mixed Markup with MOXy, maybe using Transformers使用 MOXy 解析混合标记,可能使用 Transformers
【发布时间】:2013-01-03 18:57:49
【问题描述】:

使用 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;
    }
}

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

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

我不介意结束:

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

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

谢谢,迈克

【问题讨论】:

    标签: jaxb eclipselink moxy transformer


    【解决方案1】:

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

    完整示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2013-02-08
      • 2016-10-15
      • 2018-06-12
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      相关资源
      最近更新 更多