【问题标题】:XPath and @XmlPath: same path with different element node name in JavaXPath和@XmlPath:Java中不同元素节点名的相同路径
【发布时间】:2022-12-24 02:09:19
【问题描述】:

我在 Java 中使用来自 org.eclipse.persistence.oxm 的注释 @XmlPath 我需要映射相同的字段但具有不同的父元素节点名称。 例子:

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

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

我只想使用一种方法 setReportName 并使用变量表达式而不是“FATHER1”或“FATHER2”,例如:

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

【问题讨论】:

  • 您可以使用像 @XmlPath("reports/*/ReportName/text()") 这样的通配符吗?还是应该更具体一些?

标签: java xpath


【解决方案1】:

xpath name 函数可用于比较节点/标签。参考 - https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/name

您可以使用name 函数来检查节点/标签是否包含“FATHER”。

您的 xpath 将是 - reports/*[contains(name(),'FATHER')]/ReportName/text()

如果'FATHER'应该在开头,那么您也可以使用-reports/*[starts-with(name(),'FATHER')]/ReportName/text()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2019-08-06
    相关资源
    最近更新 更多