簡體   English   中英

無法將值從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) {
    }

我還必須提供一個完整的level.xml路徑,例如:“D:\\ someFolder \\ android \\ assets \\ levels.xml”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM