SIMPLE XML,空值解析描述

时间:2016-06-20 13:36:53

标签: android xml rss

我正在本教程中http://www.hermosaprogramacion.com/2015/05/tutorial-para-crear-un-lector-rss-en-android/

在Android上创建一个RSS应用程序

我删除了一些我不想解析的标签,所有内容都使用原始网址“福布斯”RSS“http://www.forbes.com/most-popular/feed”运行正常。一旦我更改了forbes的RSS网址,我想使用“http://aplicaciones.esi.us.es/antalumnos/rss.xml”我收到此错误:

06-20 13:51:44.961 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err: org.simpleframework.xml.core.ValueRequiredException: Empty value for @org.simpleframework.xml.Element(data=false, name=description, required=true, type=void) on field 'descripcion' private java.lang.String com.herprogramacin.hermosaprogramacion.RssParse.Item.descripcion in class com.herprogramacin.hermosaprogramacion.RssParse.Item at line 11
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.readInstance(Composite.java:580)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.read(Composite.java:201)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Composite.read(Composite.java:148)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
06-20 13:51:44.971 11441-11494/com.herprogramacin.hermosaprogramacion W/System.err:     at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)

第一行说“空值描述”但我不明白为什么。这是我的Item Class的代码,有2个文件更多RSS和频道:

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Namespace;
import org.simpleframework.xml.Root;

/**
 * Clase que representa la etiqueta <item> del feed
 */

@Root(name = "item", strict = false)
public class Item {

    @Element(name="title")
    private String title;

    @Element(name="description", required=false)
    private String descripcion;

    @Element(name="link")
    private String link;

    public Item() {
    }

    public Item(String title, String descripcion, String link) {
        this.title = title;
        this.descripcion = descripcion;
        this.link = link;
        ;
    }

    public String getTitle() {
        return title;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public String getLink() {
        return link;
    }
}

我想使用的网址有问题吗?

2 个答案:

答案 0 :(得分:1)

将description元素移动到新类中 为此,您需要替换

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="map-section">
  <div class="map-container">
    <div id="map">
      <img src="http://openpathinvestments.com/wp-content/themes/boilerplate/images/map-blue.png" alt="">
      <div class="locations">
        <div class="dot dot-oregon-greshman"></div>
        <div class="tooltip tooltip-oregon-greshman">
          <strong>Stark Street Crossings</strong>
          <p>Greshman, Oregon 97030</p>
          <p><a href="">Property Profile</a> | <a href="">Website</a>
          </p>
        </div>
        <div class="dot dot-oregon-oregon-city"></div>
        <div class="tooltip tooltip-oregon-oregon-city">
          <strong>The Preserve</strong>
          <p>Oregon City, Oregon 97045</p>
          <p><a href="">Property Profile</a> | <a href="">Website</a>
          </p>
        </div>
      </div>
    </div>
  </div>
</div>

@Element(name="description", required=false)
private String descripcion;

然后,创建一个新文件Description.java,如:

@Element(name="description", required=false)
private Description descripcion;

在这种情况下,只要description标记为空,就会在反序列化过程中跳过它,并且您的public class Description { @Text(required=false) String descriptionText; public String getText() { return descriptionText; } } 字段将只为空。

答案 1 :(得分:0)

这看起来是正确的,但问题可能在于Channel类。频道也有描述。您的问题中显示的错误提到描述是必需的(在Item类中它是可选的。可能是您缺少Channel类:@Element(name =&#34; description&#34;,required = false)?