如何通过XPath将XML映射到Java对象?
给出
XML示例:
<fooRoot> <bar> <lol>LOLOLOLOL</lol> </bar> <noob> <boon> <thisIsIt></thisIsIt> </boon> </noob> </fooRoot> 哪个应该映射到: class MyFoo { String lol; String thisIsIt; Object somethingUnrelated; } 约束: >不应转换XML,它是作为解析的org.w3c.dom.Document对象提供的. 我的梦想解决方案如下: @XmlMapped class MyFoo { @XmlElement("/fooRoot/bar/lol") String lol; @XmlElement("/noob/boon/thisIsIt") String thisIsIt; @XmlIgnore Object somethingUnrelated; } 有什么同样存在吗?我发现要么需要严格的1:1映射(例如JMX,JAXB)或所有字段的手动迭代(例如SAX,Commons Digester). JiBX binding definitions离我最近的东西来了.但是,此工具可用于编组/解组Java对象的完整层次结构.我只想在运行时将XML文档的一部分提取到现有的Java bean中. 解决方法
注意:我是
EclipseLink JAXB (MOXy)领导者,也是
JAXB 2 (JSR-222)专家组的成员.
你可以用MOXy做到这一点: @XmlRootElement(name="fooRoot") class MyFoo { @XmlPath("bar/lol/text()") String lol; @XmlElement("noob/boon/thisIsIt/text()") String thisIsIt; @XmlTransient Object somethingUnrelated; } 欲获得更多信息 > http://blog.bdoughan.com/2010/07/xpath-based-mapping.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |