You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中@XmlPath注解如何匹配不同父节点的同路径字段

解决方案:使用MOXy @XmlPath的通配符语法

EclipseLink MOXy的@XmlPath支持XPath子集语法,你可以通过**通配符***匹配任意父节点,从而用单个set方法映射多个路径一致但父节点名称不同的XML节点:

实现代码

import org.eclipse.persistence.oxm.annotations.XmlPath;

// ...

@XmlPath("reports/*/ReportName/text()")
public void setReportName(String reportName) {
    this.reportName = reportName;
}

语法说明

  • *是XPath通配符,代表匹配reports节点下的任意直接子节点(不管节点名称是FATHER1、FATHER2还是其他)。
  • 该表达式会自动匹配所有符合reports/[任意节点]/ReportName/text()路径的XML元素,将它们的值统一映射到reportName字段。

进阶:精确匹配特定前缀的父节点

如果只需要匹配名称以FATHER开头的父节点(比如FATHER1、FATHER2、FATHER3),可以使用XPath的starts-with函数缩小范围:

@XmlPath("reports/*[starts-with(local-name(), 'FATHER')]/ReportName/text()")
public void setReportName(String reportName) {
    this.reportName = reportName;
}

内容的提问来源于stack exchange,提问作者Andrea Bevilacqua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:35:20