1

使用Castor使用映射文件将以下 xml 解析为 POJO 非常简单:

<human name="bob"/>
<dog owner="alice"/>

它使用元素的名称映射到类。但是如果应该使用属性来进行映射呢?例如:

<animal type="human" name="bob"/>
<animal type="dog" owner="alice"/>

这个人为的示例基于我必须使用的 XML(尽管我没有创作它!)。关于如何使用 Castor 映射文件解决此问题的任何想法?

4

1 回答 1

0

有两种方法可以解决这个问题。更改您的 Java 类结构以让人类和狗扩展动物,然后为动物编写一个映射文件。

或者只是使用 XSLT 来转换您的数据。像这样的东西可能会起作用:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="animal">
  <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text>
       <xsl:value-of select="@type" /><xsl:text disable-output-escaping="yes"> </xsl:text>name="<xsl:value-of select="@name" />"
  <xsl:text disable-output-escaping="yes"><![CDATA[/>]]></xsl:text>
</xsl:template>
</xsl:stylesheet>
于 2010-03-05T22:13:11.953 回答