Итак, я пытаюсь проанализировать XML-файл в моем приложении для Android с помощью нодлиста и построителя документов.Проблема в том, что Documentbuilder.parse () всегда возвращает значение NULL и в итоге выдает IOException.Я предполагаю, что это как-то связано с неправильным путем к файлу.
public class EquiScoreActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ProtocolFactory.GetProtocolFactory().LoadProtocol("EquiScore/assets/Protocols/LC1_2008.xml");
}
}
public class ProtocolFactory
{
private static ProtocolFactory m_Instance = new ProtocolFactory();
Document dom;
private ProtocolFactory()
{
}
public static ProtocolFactory GetProtocolFactory()
{
return m_Instance;
}
public Protocol LoadProtocol(String filename)
{
Protocol output = null;
List<JudgementGroup> jGroups;
List<GeneralAssesment> gAssesment;
ParseXmlFile(filename);
ParseDocument();
return output;
}
private void ParseXmlFile(String filename)
{
//get the factory
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try
{
//Using factory get an instance of document builder
DocumentBuilder db = dbf.newDocumentBuilder();
//parse using builder to get DOM representation of the XML file
dom = db.parse(filename);
}
catch(ParserConfigurationException pce)
{
pce.printStackTrace();
}
catch(SAXException se)
{
se.printStackTrace();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
}
По сути, мне нужно знать, как получить правильный путь к файлу или какой-то другой (может быть, лучше?) Способ анализа XML.Каждый узел одного типа может иметь различное количество дочерних узлов, поэтому я решил, что этот подход будет хорошим.
Исключение IOException: "MalformedURLException" "Протокол не найден: EquiScore / assets / Protocols /LC1_2008.xml "
Я пробовал разные варианты имени файла, но, похоже, все равно получаю эту ошибку.