Java 简单Xml框架松散映射不起作用

Java 简单Xml框架松散映射不起作用,java,xml,xml-parsing,xml-serialization,simple-framework,Java,Xml,Xml Parsing,Xml Serialization,Simple Framework,我试图使用设置了松散映射标志的简单xml框架解析xml文档的一部分,但遇到了一个异常 XML: 例外情况: 06-22 14:11:46.530: E/Soap(2057): Unable to satisfy @org.simpleframework.xml.Element(data=false, name=sCountry, required=true, type=void) on field 'country' private java.lang.String uk.co.carr

我试图使用设置了松散映射标志的简单xml框架解析xml文档的一部分,但遇到了一个异常

XML:

例外情况:

06-22 14:11:46.530: E/Soap(2057): Unable to satisfy @org.simpleframework.xml.Element(data=false, name=sCountry,     required=true, type=void) on field 'country' private java.lang.String uk.co.carr.david.TopGoalScorer.country for class uk.co.carr.david.TopGoalScorer at line 1
06-22 14:11:46.530: E/Soap(2057): org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.Element(data=false, name=sCountry, required=true, type=void) on field 'country' private java.lang.String uk.co.carr.david.TopGoalScorer.country for class uk.co.carr.david.TopGoalScorer at line 1
有什么想法吗?任何帮助都将不胜感激

谢谢
David

发生这种情况是因为您没有阐明元素的路径,只要尝试使用下一个构造,一切都会好起来的

    @Root(name="tTopGoalScorer", strict=false)
    public class TopGoalScorer {
        @Path("Body/TopGoalScorersResponse/TopGoalScorersResult/tTopGoalScorer/sName")
        @Element
        private String name;
    }

发生这种情况是因为您没有明确元素的路径,只要尝试使用下一个构造,一切都会好起来

    @Root(name="tTopGoalScorer", strict=false)
    public class TopGoalScorer {
        @Path("Body/TopGoalScorersResponse/TopGoalScorersResult/tTopGoalScorer/sName")
        @Element
        private String name;
    }

更好的方法是Persister.readMyClass.class,inputXml,false。这告诉它忽略注释类中不匹配的任何内容。它比在@Root注释中使用strict=false更好,因为它适用于整个文档。

更好的方法是Persister.readMyClass.class,inputXml,false。这告诉它忽略注释类中不匹配的任何内容。这比在@Root注释中使用strict=false要好,因为它适用于整个文档。

谢谢您的回复。我认为松散映射的思想是,您不必担心周围所有的xml?您可以只关注您感兴趣的xml部分。这种方法意味着您必须指定每个节点的确切路径,这实际上并不比在java类中镜像整个xml文档好多少。我认为松散映射的思想是,您不必担心周围所有的xml?您可以只关注您感兴趣的xml部分。这种方法意味着您必须指定每个节点的确切路径,这实际上并不比在java类中镜像整个xml文档好多少
    @Root(name="tTopGoalScorer", strict=false)
    public class TopGoalScorer {
        @Path("Body/TopGoalScorersResponse/TopGoalScorersResult/tTopGoalScorer/sName")
        @Element
        private String name;
    }