XML 데이터 문자열을 반환하는 .NET 웹 서비스를 사용하는 앱이 있습니다. 이 XML을 읽고 로컬 SQLite DB에 삽입하려고하는데 문제가 있습니다. 다음은 XML의 샘플입니다 : 내가 디버거를 통해 실행Android - XML 문제 읽기
private void GetLatestData(String response) throws ParserConfigurationException, SAXException, IOException{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(new StringReader(response)));
//Normalize the document.
doc.getDocumentElement().normalize();
//Get Root Node.
NodeList nodeList = doc.getElementsByTagName("Table");
Node node = nodeList.item(0);
//Get Child Nodes.
for(int i = 0; i < node.getChildNodes().getLength(); i++){
IssueInfo issue = new IssueInfo();
Node tempNode = node.getChildNodes().item(i);
if(tempNode.getNodeName().equalsIgnoreCase("IssueID")){
issue.setIssueNumber(Long.parseLong(tempNode.getTextContent()));
}
if(tempNode.getNodeName().equalsIgnoreCase("IssueSummary")){
issue.setIssueNumber(Long.parseLong(tempNode.getTextContent()));
}
if(issue.getIssueNumber() > 0 && issue.getIssueSummary() != null){
creator = new IssueInfoCreator(this, DBVersion);
creator.open();
creator.InsertIssue(issue.getIssueNumber(), DateFormat.getDateInstance().format(new Date()), issue.getIssueSummary());
creator.close();
}
}
}
, 그것은 "IssueID"잘을 가져옵니다
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="RemoteWebService"><OpenIssues> <Table> <IssueID>15351</IssueID> <IssueSummary>Computer keeps crashing. This continues to be a problem</IssueSummary> <LocationName>West Side</LocationName> <Status>WIP</Status> <CustomerID>89755</CustomerID> <CustomerName>West Side Computers</CustomerName> <CustomerShortName>WSC</CustomerShortName> <Notes /> <STATUS1>Work In Progress</STATUS1> <SubmittedBy>WSC - Tom Johns</SubmittedBy> <EQ_Replaced>true</EQ_Replaced></Table> </OpenIssues></string>
는 DOM을 사용하여, 나는 지금과 같은 결과를 분석하려고 해요 하지만 바로 다음 노드 인 "IssueSummary"를 픽업하여 한 번에 데이터를 삽입 할 수있는 방법은 무엇입니까? 어딘가에 또 다른 루프가 필요한 것처럼 보이지만, 확실하지는 않습니다.
Android에만 해당되는가요? 즉, IDE에서 일반적인 오래된 자바처럼 코드를 실행하는 데 동일한 오류가 발생합니까? 언뜻보기에는 'IssueID'를 가져 오는 것과 같은 방식으로 'IssueSummary'에 액세스 할 수없는 이유가없는 것처럼 보입니다. –
저는 Android 개발에 익숙하지 않지만 Eclipse로이 앱을 개발하고 있습니다. 디버깅 할 때 Android 앱으로 사용됩니다. 자바 애플 리케이션으로 실행하는 방법을 잘 모르겠습니다. – Robert
Java/Android와 상관없이 DOM을 파싱합니다. – kosa