ورود

View Full Version : دو برابر نشان دادن بچه های nodeList



biodread
جمعه 03 خرداد 1392, 10:25 صبح
سلام
من یه فایل xml رو از پوشه assets می خونم


public Document loadLocal(InputStream inputStream)
{
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder xmlString = new StringBuilder();
String line;
try
{
while ((line = bufferReader.readLine()) != null)
{
xmlString.append(line);
}
}
catch (IOException e)
{
e.printStackTrace();
}

return getDomElement(xmlString.toString());
}

private Document getDomElement(String xml)
{
xmlDocumet = null;
xmlDocumentBuilderFactory = DocumentBuilderFactory.newInstance();
try
{
xmlDocumenyBuilder = xmlDocumentBuilderFactory.newDocumentBuilder();

inputSource = new InputSource();
inputSource.setCharacterStream(new StringReader(xml));
xmlDocumet = xmlDocumenyBuilder.parse(inputSource);

}
catch (ParserConfigurationException e)
{
Log.e("Error: ", e.getMessage());
return null;
}
catch (SAXException e)
{
Log.e("Error: ", e.getMessage());
return null;
}
catch(IOException e)
{
Log.e("Error: ", e.getMessage());
return null;
}

return xmlDocumet;
}



و بعد می خوام تعداد بچه های رووت xml رو بگیرم


Log.i("tedade bache ha", Integer.toString(xml.getDocumentElement().getChild Nodes().getLength()));



اما دو برابر نشان میده
یعنی اگه 5 تا بچه داشته باشم 10 تا نشون میده

اینم xml منه


<?xml version="1.0" encoding="UTF-8"?>
<data>

<item
label="cat"
piority="low"/>

<item
label="cat"
piority="low"/>

<item
label="cat"
piority="low"/>

<item
label="cat"
piority="low"/>

<item
label="cat"
piority="low"/>

</data>



چرا دو برابر نشون میده؟
درضمن من نمیتونم از getElementsByTagName استفاده کنم چون node هام هم اسم هستن

ممنون از راهنمایی تون