Java XStream - 忽略XML中不存在的标记

Qwa*_*wan 11 java xstream

我目前使用一段XML,如下所示

<Person>
    <Name>Frank Smith</Name>
    <Id>100023412</Id>
    <DOB>12/05/1954</DOB>
    <LasLogin>01/09/2010</LasLogin>
    <FavOS>Windows</FavOS>      // Wild card that may occasionally appear
</Person>
Run Code Online (Sandbox Code Playgroud)

我坚持使用的是,当使用XStream时,我需要能够忽略出现的某些标签(在'FavOS'上面的情况下)这些标签可能未知或将来发生变化.有没有办法忽略所有与当前实现的不匹配的标签?

(使用XStream 1.3.1)

mar*_*rea 17

因为我花了超过15分钟才找到这个答案,我想我会发布它.

XStream xstream = new XStream(new DomDriver()) {
            protected MapperWrapper wrapMapper(MapperWrapper next) {
                return new MapperWrapper(next) {
                    public boolean shouldSerializeMember(Class definedIn, String fieldName) {
                        try {
                            return definedIn != Object.class || realClass(fieldName) != null;
                        } catch(CannotResolveClassException cnrce) {
                            return false;
                        }
                    }
                };
            }
        };
Run Code Online (Sandbox Code Playgroud)

这似乎跳过了不在您对象中的xml项.


Aji*_*mar 6

XStream 1.4.5支持处理未实现的标记.对于尚未实现或已被删除且您正在处理旧xml的标记,请使用ignoreUnknownElements.您还可以指定要忽略的特定标记.