eclipselink moxy选择当前节点的所有子元素或文档中具有特定名称的所有元素



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

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

但是它不能正确地对xml文档进行解组。名为entries的List变量为空。

我也试过

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

我也试过

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

没有乐趣

但是如果我做

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

这很好,并且列表已填充。

我还没有查看源代码,但我猜这种类型的xpath还不受支持。我在xpath验证器中检查了我所有的xpath是否健全,上面的所有xpath都很好(所有xpath对我所在的上下文节点都有效)。

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

  • https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EclipseLink

MOXy确实支持类似XPath的:

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

有关更多信息

  • http://blog.bdoughan.com/2010/07/xpath-based-mapping.html
  • http://blog.bdoughan.com/2010/09/xpath-based-mapping-geocode-example.html
  • http://blog.bdoughan.com/2011/03/map-to-element-based-on-attribute-value.html

最新更新