我一直在开发一个应用程序来解析以下提要中的可用信息:
http://www.tsn.ca/datafiles/xml/cfl/boxscores/1191818.xml
直到今天,一切都运行良好。提要更改为在某些玩家的 TT 属性中添加...
<box-player table="receiving-data" team="1" name="Jeff|Fuller" REC="1" TT="0" YDS="21" TD="0" LNG="21">player</box-player>
然后简单地开始抛出 TT is not specified 或 Attribute not listed 异常(不记得“实际”名称)。
我确保为提要的根添加 strict = false:
@Root(name = "boxscore", strict = false)
public class Boxscore
{
@Element(name = "file-info", required = false)
private FileInfo fi;
@Element(name = "away-team", required = false)
private AwayTeam awayTeam;
@Element(name = "home-team", required = false)
private HomeTeam homeTeam;
@Element(name = "stat-headings", required = false)
private StatHeadings statHeadings;
@Element(name = "qips", required = false)
private Qips qips;
@Element (name = "notes", required = false)
private String notes;
@ElementList(name = "players", required = false)
private List<Player> anyPlayers;
@ElementList(inline = true, required=false, entry = "box-player")
private List<Player> inlinePlayers;
public List<Player> getPlayers()
{
if(anyPlayers == null)
{
return inlinePlayers;
}
else return anyPlayers;
}
// other get methods ...
}
我对播放器类的声明如下 - 这是摘录:
@Element(name= "box-player")
public class Player { ... }
我尝试为 @Element 添加 strict = false,但我得到“注解类型 Element 的属性 strict 未定义”。
有什么方法可以忽略新添加的属性吗?所以解析仍然有效?
最佳答案
将 @Root(strict=false)
添加到 Player
类。发生的事情是 Boxscore
类不是 strict
但 Player
类是。
另外,documentation声明:此外,元素列表中的元素(如 ElementList 注释所示)需要此注释,以便可以确定元素名称。
由于您的 Player
类位于 ElementList
中,因此它也需要 @Root
注释。
关于android - 简单 XML - 即使提要具有 "changed"并且已添加新属性,如何成功解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111889/