无法将值从 xml 解析为代码 libgdx

Cannot parse value from xml to code libgdx

我正在尝试将 xml 文件中的数据解析到我的 libgdx 游戏中。我的 xml 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<levels currentLevel = "1">
    <Level1 speed="1" direction="1" lineAngle="14" />
    <Level2 speed="1" direction="1" lineAngle="14" />
    <Level3 speed="1" direction="1" lineAngle="14" />
</levels>

我在 show 方法中调用的从 xml 中获取值的代码是:

XmlReader xml = new XmlReader();
    try {
        XmlReader.Element element = xml.parse(Gdx.files.internal("levels.xml"));
        XmlReader.Element root = element.getChildByName("levels");
        currentLevel = root.getInt("currentLevel");
        XmlReader.Element level = root.getChildByName("Level1");
        lineAngle = level.getInt("lineAngle");
        speed = level.getFloat("speed");
        direction = level.getInt("direction");
    }catch (Exception e){} 

但我无法从 xml 中获取任何值。例如,我希望 lineAngle 为 14 但它是 0。你能给我解释一下为什么会这样吗?任何解决方案都会很棒。谢谢

当您将文件解析为元素时,您已经位于 XML 的根目录中。 这对我有用:

XmlReader xml = new XmlReader();
    try {
        // Element is the root element of your document, i.e. <levels>
        XmlReader.Element element = xml.parse(Gdx.files.internal("D:\someFolder\android\assets\levels.xml"));
        currentLevel = element.getInt("currentLevel");
        XmlReader.Element level = element.getChildByName("Level1");
        lineAngle = level.getInt("lineAngle");
        speed = level.getFloat("speed");
        direction = level.getInt("direction");
    } catch (Exception e) {
    }

我还必须给出 levels.xml 的完整路径,例如:"D:\someFolder\android\assets\levels.xml"