나는 항상 도움을 청하지 않는다. 나는 항상 나의 연구를하고 나 자신에 의해 해결책을 찾으려고 노력하지만, 이번에는 정말로 갇혀있다 ... 나는 몇몇 언어에 많은 경험을했지만 그렇지 않다. 자바와 함께 ... 그래서, 내가 뭘 하려는지 동적 레이아웃을 가지고 특정 호스트의 XML 파일에서로드 응용 프로그램입니다. 제 첫 번째 문제는 분명히 메인 스레드에서 XML을 읽을 수 없기 때문에 스레드와 Asynctaks에 대해 배워야했습니다. 그리고 간단한 스레드를 사용하고 일부 전역 변수에 값을 저장하기로 결정했습니다. 생성되었지만 작동하지 않습니다 ... XML 파서에 SAX를 사용하려고했지만 DOM을 선호합니다. 3 일 동안이 작업을하려고하는데 조금 화가 나서 누군가가 나를 도울 수 있기를 바랍니다.누구나 안드로이드 XML 파서를 도와 줄 수 있습니까?
이것은 내가 정의하는 클래스입니다. 내 멍청 아. 그들은 모두 하나 이상의 값을 처리해야한다고 가정합니다. 단 하나의 값을 제외하고는 XML의 URL을 저장하여 스레드에서 사용합니다. 나는 누군가가 여기에 나에게 약간의 도움을 줄 수 있기를 바랍니다
도 예외가 감지되고 있지//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 정보를 반환하지 않습니다 ... :
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;
}
그리고 여기 내 주요 스레드 .
감사
편집 : 여기
은 XML이다 : 나는 모든 XXX 필요<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>
, 나는 가능하면 multimensional 배열을 가지고 싶습니다 .
을하는 데 도움이 http://www.ibm.com/developerworks/xml/library/x-android/
희망, 당신은 구문 분석을 시도하고있는 실제 XML을 포함하는 답변을 편집 할 수있는 SAX 부분을 읽어? –
빠른 답변 감사합니다. XML로 내 게시물을 편집했습니다. 도와 주실 수 있기를 바랍니다. –
이미 응답해야하므로 답변 할 사람이 있는지 확실하지 않습니다. 자다 :). 그러나 가능한 한 많은 활동을 게시 할 수 있습니까? 언뜻보기에 약 3 가지 문제가있는 부분을 볼 수 있지만 지금은 어떤 버그가 발생했는지 확신 할 수 없습니다. –