当前位置: 首页 > 面试题库 >

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

邹华皓
2023-03-14
问题内容

我目前使用如下所示的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>

我所坚持的是,在使用XStream时,我需要能够忽略出现的某些标签(在“
FavOS”上方的情况下),这些标签可能未知或将来会更改。有没有办法忽略所有与当前实现的不匹配的标签?

(使用XStream 1.3.1)


问题答案:

由于我花了超过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;
                        }
                    }
                };
            }
        };

这似乎会跳过不在您的对象中的xml项。



 类似资料:
  • 问题内容: 我的xml文件如下: 我想忽略,我想在我的Unmarshaller流程中添加标签。 我的班级如下: 谢谢。 问题答案: 忽略 您可以创建一个经过过滤的StAX,并让JAXB取消编组以忽略一个或多个XML元素。 http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/XMLInputFactory.html#createFilt

  • 我在通过MapStruct映射字段时遇到问题。 我有两门课。第一个域类“事件”,例如带有字段 第二类是“EventForm”。EventForm具有字段: 当我想更新现有事件时,会发生以下情况:1)我通过Id从数据库中获取现有事件 <代码>事件事件=事件服务。获取(id) 事件id=10000,lastUpdate=11213123123; 2) 我正在将字段从表单映射到域类 <代码>事件=映射器

  • 问题内容: 如何 忽略 此preg_replace中的 html标签 。我有一个foreach函数来进行搜索,因此,如果有人搜索“苹果范围”,则preg_replace也会将范围应用于范围,并且html会中断: 提前致谢! 问题答案: 我假设您应该基于DOMDocument和DOMXPath而不是使用正则表达式来创建函数。即使那些功能非常强大,您也会遇到像您描述的问题那样的问题,这些问题不是(总是

  • 我使用Prometheus push gateway从Cronjob向Prometheus发送指标,然后在Grafana中显示它们。 在cronjob的多次运行过程中,一些指标标签会发生变化。Grafana将这些带有已更改标签的指标显示为单独的指标。如何将具有不同标签值的相同指标合并成一个指标?(Grafana中显示的一行)

  • 问题内容: 我收到一个XML响应,并且它一直在频繁更改(节点不断增加或减少)。在响应xml中的每次更新之后,由于映射的Java类没有所有文件,所以我的代码中断了。 如果响应XML中发生任何更改,是否有任何方法可以避免我的代码中断。 任何帮助将不胜感激。 谢谢。 问题答案: 要处理未知字段,可以添加带注释的属性 输入中与类的显式属性不对应的任何元素都将被扫入此列表。如果该元素是已知的,则将得到未编组