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

使用SimpleXML非常容易解决问题。我做错了什么?

吕学
2023-03-14
问题内容

我正在使用Java和SimpleXML

我需要使用SimpleXML解析此XML文件:

<magazine title="N˙mero 1" id="1">
    <description>yutyutyu</description>
    <miniature>http://web.com/scripts/getImage.php?idMagazine=1&resource=miniature.jpg</miniature>
    <summary>2</summary>
    <pages>
        <page src="http://web.com/scripts/getImage.php?idMagazine=1&resource=page_001.jpg" id="1" thumbnail="http://web.com/scripts/getImage.php?idMagazine=1&resource=thumbnail_001.jpg">
            <areas>
                <area id="1">
                    <top>188</top>
                    <left>204</left>
                    <width>399</width>
                    <height>319</height>
                    <action type="openBrowser">http://www.web.com</action>
                </area>
                <area id="2">
                    <top>188</top>
                    <left>204</left>
                    <width>399</width>
                    <height>319</height>
                    <action type="openBrowser">http://www.web.com</action>
                </area>
            </areas>
        </page>
        <page src="http://web.com/scripts/getImage.php?idMagazine=1&resource=page_002.jpg" id="2" thumbnail="web.com/scripts/getImage.php?idMagazine=1&resource=thumbnail_002.jpg"/>
        <page src="http://web.com/scripts/getImage.php?idMagazine=1&resource=page_003.jpg" id="3" thumbnail="web.com/scripts/getImage.php?idMagazine=1&resource=thumbnail_003.jpg"/>
    </pages>    
</magazine>

我收到此异常:

03-22 16:02:35.072:WARN /
System.err(1931):org.simpleframework.xml.core.ValueRequiredException:无法满足@
org.simpleframework.xml.ElementList(data = false,empty = true,entry =
,inline = false,name =,required = true,type = void)在字段“
areas”上,第1行的类com.Magazine.Page的java.util.ArrayList com.Magazine.Page.areas

杂志有一系列页面,每个页面都有一个区域数组,每个区域都有一个动作类,其中包含更多内容。问题必须在Areas数组上,所以在Page类中。

@Root (name="magazine")
public class FullMagazine {
    @Attribute
    String title;
    @Attribute
    String id;
    @Element
    String description;
    @Element
    String miniature;
    @Element
    int summary;
    @ElementList
    public ArrayList<Page> pages;

    public String getTitle() {
        return title;
    }
    public String getId() {
        return id;
    }
    public String getDescription() {
        return description;
    }
    public Bitmap getMiniature() {
        return Util.getRemoteBitmap(miniature);
    }

    public static FullMagazine Load(String xml){ 
        Serializer serializer = new Persister();
        try{
            return serializer.read(FullMagazine.class, xml);
        }catch (Exception e) {e.printStackTrace();}
        return null; //si llega aquÌ es que ha fallado.
    }
}
@Root
public class Page {
    @Attribute
    String src;
    @Attribute
    String id;
    @Attribute
    String thumbnail;
    @ElementList
    public ArrayList<Area> areas;
}
@Root
public class Area {
    @Attribute
    String id;  
    @Element
    int top;
    @Element
    int left;
    @Element
    int width;
    @Element
    int height;
    @Element
    Action action;
}
@Root
public class Action {   
    @Attribute
    String type;

    String action;
}

问题答案:

您必须在区域的ArrayList上放置required = false,XML的某些页面没有区域

    @Root
public class Page {
    @Attribute
    String src;
    @Attribute
    String id;
    @Attribute
    String thumbnail;
    @ElementList (required=false)
    public ArrayList<Area> areas;
}


 类似资料:
  • } 它正在抛出这些错误。

  • 我正在做一个项目,我的意图是运行一个玉米作业,并发送邮件给我的朋友,祝他们生日,我能够从MySQL DB获取电子邮件,并将其与当前日期进行比较,但当涉及到发送电子邮件时,我得到NullPointerException。 我确信应用程序属性没有问题,我在其他项目中也使用了它们,它们的功能正常 这是我得到以下信息的错误

  • 本文向大家介绍SSR解决了什么问题?有做过SSR吗?你是怎么做的?相关面试题,主要包含被问及SSR解决了什么问题?有做过SSR吗?你是怎么做的?时的应答技巧和注意事项,需要的朋友参考一下 "你是怎么做的?" 废话,能怎么做,看着文档指引去做,搭 webpack,nodejs

  • 正在启动lib\main。在调试模式下为x86构建的Android SDK上的dart。。。正在运行Gradle任务“assembleDebug”。。。 失败:生成失败,出现异常。 错误:任务“:app:compileFlutterBuildDebug”的执行失败 JAVAlang.NullPointerException(无错误消息) > 尝试:使用--stacktrace选项运行以获取堆栈跟踪

  • 本文向大家介绍你有使用过loadable组件吗?它帮我们解决了什么问题?相关面试题,主要包含被问及你有使用过loadable组件吗?它帮我们解决了什么问题?时的应答技巧和注意事项,需要的朋友参考一下 目前有两个 和 ,用于代码分割,解决打包体积过大的问题

  • 本文向大家介绍你有使用过suspense组件吗?它帮我们解决了什么问题?相关面试题,主要包含被问及你有使用过suspense组件吗?它帮我们解决了什么问题?时的应答技巧和注意事项,需要的朋友参考一下 When IO(network) is fast, we make it instant, if it's slow, suspense can make it responsible.