XMLの文字列を返す.NET Webサービスを利用するアプリケーションがあります。私はこのXMLを読んでローカルのSQLite DBに挿入しようとしていますが、何か問題があります。ここでは、XMLのサンプルです:Android - XMLの問題を読む
DOMを使用して<?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>
、私はそうのような結果を解析しようとしている:
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」を取得するだけで罰金しかし、すぐに次のノード "IssueSummary"をピックアップしてすぐにデータを挿入できますか?どこか別のループが必要なように思えますが、あまりにも確かではありません。
Android専用ですか?つまり、IDEで普通の古いJavaと同じエラーをコードを実行するのですか?一見すると、「IssueID」を取得するのと同じ方法で、「IssueSummary」にアクセスできない理由はないようです。 –
私はAndroidの開発にはかなり新しいですが、私はこのアプリをEclipseで開発しています。デバッグするときは、Android Appと同じです。 Javaアプリケーションとして実行する方法はわかりません。 – Robert
Java/Androidに関係なくDOMを解析します。 – kosa