我不常常要求幫忙,我一直在做我的研究,並試圖自己找到解決方案,但這一次我真的被卡住了...... 我對某些語言有很多經驗,但沒有與java ... 所以,我想要做的是一個應用程序,具有動態佈局,並從特定主機上的XML文件加載它。 我的第一個問題是,顯然,從主線程讀取XML是不可能的,所以我不得不學習線程和Asynctaks,並且我決定使用一個簡單的線程並將值存儲在一些全局變量中,I創建,但它不工作... 我也嘗試使用SAX的XML解析器,但我更喜歡DOM。 我只是想這樣做超過3天,我對此有點生氣,我希望有人能幫助我,這裏是我的代碼:任何人都可以幫助我一個android的XML解析器?
這是我定義的類我的變數。它們都應該處理多個值,除了XML之外,它將存儲XML的URL以在線程中使用它。
public class Info {
public static String Param1[];
public static String Param2[];
public static String Param3[];
public static String Param4[];
public static String Param5[];
public static String Param6[];
public static String XML;
}
這裏是我的主線程:
//Create the basic layout
ScrollView sv = new ScrollView(this);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
sv.addView(ll);
Info.XML="mylink";
Thread thread = new Thread()
{
@Override
public void run() {
try {
URL url = new URL(Info.XML);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList ActionContainers = doc.getElementsByTagName("ActionContainer");
Node mainContainer = ActionContainers.item(0);
Element Container = (Element) mainContainer;
NodeList Actions = Container.getElementsByTagName("Action");
for (int i = 0; i < Actions.getLength(); i++) {
Node mainAction = Actions.item(i);
Element Action = (Element) mainAction;
Info.Param1[i]=Action.getAttribute("Param1");
Info.Param2[i]=Action.getAttribute("Param2");
Info.Param3[i]=Action.getAttribute("Param3");
Info.Param4[i]=Action.getAttribute("Param4");
Info.Param5[i]=Action.getAttribute("Param5");
Info.Param6[i]=Action.getAttribute("Param6");
}
} catch (Exception e) {
Info.XML="Erro";
}
}
};
try{
thread.start();
} catch(Exception e){
Info.XML="Erro";
}
EditText et = new EditText(this);
et.setText(Info.XML);
ll.addView(et);
setContentView(sv);
沒有檢測到異常,它根本沒有返回XML信息... 我希望有人能在這裏給我一點幫助。
感謝
編輯:
這裏是XML:
<appname Version="yyy" WrittenOn="yyy">
<Config>
<Page Id="yyy">
<ActionContainer Id="yyy">
<Action Param1="xxx" Param2="xxx" Param3="xxx" Param4="xxx" Param5="xxx" Param6="xxx"></Action>
<Action Param1="xxx" Param2="xxx" Param3="xxx" Param4="xxx" Param5="xxx" Param6="xxx"></Action>
<Action Param1="xxx" Param2="xxx" Param3="xxx" Param4="xxx" Param5="xxx" Param6="xxx"></Action>
<Action Param1="xxx" Param2="xxx" Param3="xxx" Param4="xxx" Param5="xxx" Param6="xxx"></Action>
...
</ActionContainer>
</Page>
</Config>
我需要所有的XXX,我想有他們如果可能的話multimensional陣列。
爲了完整起見,你可以編輯您的答案,包括你正在試圖解析實際的XML? –
謝謝你的快速回答,我已經用XML編輯了我的文章,我希望你能幫助我:) –
我不確定我是否會成爲回答的人,因爲我已經需要去睡覺:)。但是,你能儘可能多地發佈你的活動嗎?乍看之下,我發現了大約3個可能存在問題的地方,但目前我無法確定哪一個會導致該錯誤。 –