【问题标题】:MOXy @XmlPath expressions, are they supported?MOXy @XmlPath 表达式,是否支持?
【发布时间】:2014-11-17 12:31:54
【问题描述】:

MOXy 是否支持如下 XPath 表达式?

field[XMLtag!='identifier']

基本上我有这样的 XML

<demographics>
  <field>
    <value>12345</value>
    <XMLtag>identifier</XMLtag>
  </field>
  <field>
    <value>somename</value>
    <XMLtag>name</XMLtag>
  </field>
</demographics>

我正在尝试获取要填充的列表,但排除用于标识符的字段。

这会起作用,但会给我List 中的所有字段元素 (2)(正确)

@XmlElement( name = "field" )
public List<Field2> fieldList;

这不会,我得到一个空的List

@XmlPath( "field[XMLtag!='identifier']" )
public List<Field2> fieldList;

上述是否应该有效,或者 MOXy 不支持这样的表达方式?我似乎找不到任何关于他们的信息。

我没有包含我的 Field2 类,因为它非常简单并且显然可以正常工作,因为如果使用 @XmlElement 注释,我可以解组列出。如果你想看,请告诉我。

【问题讨论】:

    标签: java xml xpath moxy


    【解决方案1】:

    EclipseLink JAXB (MOXy)@XmlPath 注释支持 XPath 规范的子集。 XPath 处理由 MOXy 自己完成。支持以下概念:

    • 属性 - @id
    • 元素 - address
    • 按位置的元素 - address[1]
    • 谓词元素 - address[@type='mailing']
    • 元素文本 - name/text()
    • 文本 - text()
    • 自我-.
    • 组合-personal-info/name[2]/text()

    对于命名空间限定节点,@XmlNs 注释中定义的前缀可用于限定 XPath 片段。不合格的片段将被假定在使用 @XmlSchema 指定的命名空间中。

    【讨论】:

      猜你喜欢
      • 2012-01-14
      • 2012-02-02
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多