使用Castor根据属性值解析xml
使用 Castor 使用映射文件将以下 xml 解析为 POJO 相当简单:
<human name="bob"/>
<dog owner="alice"/>
它使用要映射到类的元素。但是如果应该使用属性来进行映射怎么办?例如:
<animal type="human" name="bob"/>
<animal type="dog" owner="alice"/>
这个人为的示例基于我必须使用的 XML(尽管它不是我创作的!)。关于如何使用 Castor 映射文件解决这个问题有什么想法吗?
Using Castor to parse the following xml into POJOs using a mapping file is fairly straightforward:
<human name="bob"/>
<dog owner="alice"/>
It uses the name of the element to map to the class. But what if an attribute should be used to do the mapping? e.g.:
<animal type="human" name="bob"/>
<animal type="dog" owner="alice"/>
This contrived example is based on XML that I have to consume (tho I didn't author it!). Any ideas on how to approach this with Castor mapping files?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有两种方法可以解决这个问题。更改 Java 类结构,让人类和狗扩展 Animal,然后为 Animal 编写映射文件。
或者只是使用 XSLT 来转换数据。像这样的事情可能会起作用:
There are two ways to approach this. Change your Java class structure to have human and dog extend animal, and then write a mapping file for Animal.
Or just use XSLT to transform you data. Something like this might work: