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

反序列化文档时如何忽略未使用的XML元素?

袁旻
2023-03-14
问题内容

我正在使用SimpleXml对POJO进行序列化。现在,我有一个很大的XML,其中包含一些不需要的元素。例如,使用以下XML:

<Root>
   <Element>Used</Element>
   <Another>Not used</Another>
<Root>

我想创建一个POJO,看起来像:

@Root
class Root{
    @Element
    private String element;
}

问题是我收到此异常:

simpleframework.xml.core.ElementException: Element 'Another' does not have a
match in class blah.blah.Blah at line 1

那么…我应该如何配置POJO,以便可以正确解析XML?


问题答案:

strict在Root批注中设置为false可以忽略所有未出现在类中的XML元素或属性。

@Root(strict=false)

或者
strict在读取序列化程序中的xml时将其设置
为false :

Root root = serializer.read(Root.class, source, false);


 类似资料:
  • 问题内容: 我有一个简单的接口与属性的getter和setter。 我还有另一个实现此接口的UserAccount类。 我的问题是我想序列化money属性,但在反序列化它时忽略它,即,不接受用户对此属性的任何值。我在setter上尝试过@JsonIgnore,在getter上尝试过@JsonIgnore(false),它确实会忽略它,但是在序列化它时也会这样做。 我在setter上尝试了@Json

  • 我有另一个类UserAccount实现了这个接口。 我的问题是,我想序列化money属性,但在反序列化时忽略它,即不接受用户对该属性的任何值。我在setter上尝试了@jsonIgnore,在getter上尝试了@jsonIgnore(false),它确实忽略了它,但是它在序列化它的同时也忽略了它。 我在setter上尝试了@jsonIgnore,在getter上尝试了@jsonProperty,

  • 我们有类似于Golang的json注释吗? 我有一个json字符串: {“long_name”:“dffdf”} 我的班级: 由于下划线,LongName总是为空,我不想在我的类属性中使用下划线。 反序列化时是否有忽略下划线的选项?

  • 我想在Java中反序列化包含空值的json字符串。我想将对象反序列化为对象。json字符串类似于: 当我反序列化使用 由于对象中的that,我得到一个空指针异常。我如何指示Gson忽略空值的反序列化?

  • 我加载xml文件如下 使2类 我加载xml文件(temp.xml),然后序列化类2位置和头然后StringReader,它从文件中读取字符串,然后类序列化成为反序列化 但我看到error error msg在XML文档中有一个错误(1,1)。哪里?:at系统。Xml。序列化。XmlSerializer。在系统上反序列化(XmlReader XmlReader、String encodingStyl

  • 我在尝试反序列化xml时收到以下错误。这会产生错误: XmlSerializer serializer=新XmlSerializer(typeof(PrivateOptionsAPIResponse)) var result=序列化程序。反序列化(streamReader); 例外情况: 系统捕获到InvalidOperationException消息=XML文档(0,0)中有错误 InnerEx