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 هام هم اسم هستن
ممنون از راهنمایی تون
من یه فایل 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 هام هم اسم هستن
ممنون از راهنمایی تون