gpt4 book ai didi

java - 在 Android 中使用简单 XML 解析 XML 文件列表元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:35 25 4
gpt4 key购买 nike

我需要用 SImple XML 解析一个大的 xml 文件,(我真的很想用 Simple XML)。我使用 XSD 创建对象,将它们从特定于 JAXB 的对象转换为特定于 SimpleXML 的带注释对象。

XML 看起来像这样:

    <House>
<MainLevel Name="~#editRoom" IsHidden="false">
<ChildLevel Name="Television" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="Chair" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="Table">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="ChamberName" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="ChamberName" Category="Bathroom">
<string>BathTub</string>
</ChildLevel>
<ChildLevel Name="Door", Category="DiningRoom">
<boolean>isOpen</boolean>
</ChildLevel>
</MainLevel>
<MainLevel Name="~#editRoom" IsHidden="false">
<ChildLevel Name="Television" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="Chair" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="Table" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="ChamberName" Category="Livingroom">
<string>TestRoom</string>
</ChildLevel>
<ChildLevel Name="ChamberName" Category="Bathroom">
<string>BathTub</string>
</ChildLevel>
<ChildLevel Name="Door">
<boolean>isOpen</boolean>
</ChildLevel>
</MainLevel>
</House>

你有什么建议。请帮助。谢谢。

最佳答案

你最好写 3 个类:

  1. House,(= 根)包含 MainLevel
  2. 的(内联)列表
  3. MainLevel,包含所有 ChildLevel
  4. 的(内联)列表
  5. ChildLevel,包含值

这是一些伪代码:

@Root(...)
public class House
{
@ElementList(inline = true, ...)
private List<MainLevel> levels;

// ...
}

public class MainLevel
{
@Attribute(name = "Name")
private String name;
@Attribute(name = "IsHidden")
private bool hidden;
@ElementList(inline = true, ...)
private List<ChildLevel> childLevels;

// ...
}

public class ChildLevel
{
@Attribute(name = "Name")
private String name;
@Attribute(name = "Category", required = false)
private String category;

// ...
}

由于 ChildLevel 可以有不同的类型,您必须注意这一点。要么实现所有类型并将它们标记为不需要,要么创建子类。

关于java - 在 Android 中使用简单 XML 解析 XML 文件列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21918897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com