1

我在 jaxb 类中为 moxy 定义了这个 xpath

@XmlPath("child::*/REG") 公共列表条目;

但它不会正确解组 xml 文档。名为 entries 的 List 变量为空。

我也试过

@XmlPath("*/REG") 公共列表条目;

我也试过

@XmlPath("//REG") 公共列表条目;

没有喜悦

但如果我这样做

@XmlPath("BANKGIRO/REG") 公共列表条目;

很好,列表已填充。

我还没有查看源代码,但我猜这种类型的 xpath 还不支持。我在 xpath 验证程序中检查了所有 xpath 的完整性,并且上面的所有 xpath 都很好(所有 xpath 对于我所在的上下文节点都有效)。

4

1 回答 1

1

EclipseLink JAXB (MOXy)目前不支持 XPath,例如:@XmlPath("child::*/REG"). 我们的重点是支持为编组和解组提供足够信息的 XPath 语句。例如,@XmlPath("child::*/REG")读取时的含义很清楚,但在将该对象写回 XML 或 JSON 时就含糊不清。如果您对此类支持感兴趣,请输入增强请求:

MOXy 确实支持 XPath,例如:

  • @XmlPath(".") // 映射到自身节点,在将两个对象映射到同一个元素时很有用
  • @XmlPath("@foo") // 映射到属性
  • @XmlPath("foo") // 映射到元素
  • @XmlPath("foo[2]") // 映射到第二次出现
  • @XmlPath("foo[@bar='Hello World']") // 映射到带有 bar 属性且值为 "Hello World" 的 foo 元素
  • @XmlPath("ns1:foo/ns2:@bar") // 映射到命名空间限定节点

了解更多信息

于 2012-03-06T15:55:36.403 回答