私はアンドロイドアプリケーションを開発する必要があります。アンドロイドのDOMパーサーを使って値のリストを取得
ここで私は以下のXMLフォーマットに従っています。
<Product>
<product name="viki" productid="111">
<ProductType>
<producttype>Nokia</producttype>
<producttype>Samsung</producttype>
</ProductType>
</product>
</Product>
ここで私は次のコードを書いているproduct.so particluarためでProductType取得する必要があります:私は値ノキアを表示する必要がalone.butここ
if(subCategoryChildNode.hasChildNodes()){
// parse 'Subcategory' childs
NodeList productNL = subCategoryChildElmt.getElementsByTagName("product");
if(productNL.getLength() > 0){
ArrayList<Product> productAL = new ArrayList<Product>();
Product productBean = null;
for(int pCnt=0;pCnt<productNL.getLength();pCnt++){
Node productNode = productNL.item(pCnt);
Element productElmt = null;
// parse 'product' tag attributes
if(productNode.hasAttributes()){
productBean = new Product();
productElmt = (Element)productNode;
productBean.setmProductName(productElmt.getAttribute("name"));
}
if(productNode.hasChildNodes()){
NodeList productTypeNL = productElmt.getElementsByTagName("ProductType");
if(productTypeNL.getLength() > 0){
ArrayList<ProductType> ProductTypeAL = new ArrayList<ProductType>();
ProductType productTypeBean = null;
for(int ptCnt=0;ptCnt<productTypeNL.getLength();ptCnt++){
Node productTypeNode = productTypeNL.item(ptCnt);
Element productTypeElmt = null;
if(productTypeNode.hasChildNodes()){
productTypeBean = new ProductType();
productTypeElmt = (Element)productTypeNode;
productTypeBean.setmProductType(XMLfunctions.getValue(productTypeElmt,"producttype"));
System.out.println("Product Types are "+ " "+XMLfunctions.getValue(productTypeElmt,"producttype"));
ProductTypeAL.add(productTypeBean);
}
productBean.setmProductTypes(ProductTypeAL);
}
productAL.add(productBean);
}
}
subCategoryBean.setmProducts(productAL);
}
}
subCategoryAL.add(subCategoryBean);
}
が値を取得していますが、ノキアあります、サムスン...私は私がすべての値のリストを取得する必要がある単一のvalue.but私は、アプリケーションを実行する必要があります..
私のコードで何が問題なのですか? ?
ログには、「製品タイプはNokia」と「製品タイプはSamsung」の両方が表示されますか? – MagicMicky
なぜSAXパーサーを使用しないと、すべてのものをDOMパーサのメモリに保存するよりもメモリ効率が向上します。また、Androidアプリのメモリは限られています。 – NoBugs
@ NoBugsはい、私はthat.Butしようとしているsaxパーサーを行う上でより多くの問題に直面している。その理由は、私はドンパーサーをchossingしている。 – user2218667