我正在尝试使用 apache-commons-digester 3 将 XML 加载到对象中。我面临的问题是某些标签具有我不感兴趣的属性。但是,如果我使用<set-properties-rule>
规则,它会尝试将所有属性加载到对象属性中,并在发现某些属性没有匹配的属性时失败. 如何排除这些属性?我正在寻找类似的东西<set-properties-rule exclude="/xmlns:xsi*"/>
问问题
1263 次
2 回答
1
我认为您正在寻找的是忽略规则。我认为这是在某些 3.x 版本中添加的。
<set-properties-rule>
<ignore attr-name="whatever" />
<alias attr-name="surname" prop-name="lastname" />
</set-properties-rule>
于 2012-06-27T19:37:22.620 回答
0
忽略元素不在消化器库中嵌入的 DTD 中,这会在运行时导致一些令人讨厌的异常。另一种方法是使用别名而不指定属性值,如下例所示:
<set-properties-rule>
<alias attr-name="whatever" />
<alias attr-name="surname" prop-name="lastname" />
</set-properties-rule>
在上面的例子中,属性“whatever”被忽略了。
SetPropertiesRule 类的文档说:
如果属性名称为 null 或属性名称没有匹配的属性名称,则表示应忽略该属性。
很抱歉这个迟到的答案,但我刚刚在我的项目中遇到了这个问题并找到了这个解决方案。它对我来说非常好用(我正在使用digester3-3.2)。
于 2015-10-23T14:13:57.757 回答