我已经在设备的内部存储中创建了一个xml文件,如android开发者网站上所述。我现在想要使用DOM解析器解析文件。我需要做什么才能让DOM解析器读取我的XML文件? 这是一个片段:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document dom = db.parse(new InputSource(new StringReader(data)));
dom.getDocumentElement().normalize();
我需要在“数据”的位置放置什么:
Document dom = db.parse(new InputSource(new StringReader(data)));
我知道这很愚蠢,但任何帮助都会受到赞赏。
答案 0 :(得分:1)
您可以在inputsource
中提供FileInputStreamDocument dom = db.parse(new InputSource(new FileInputStream(data)));
答案 1 :(得分:1)
您可以像下面那样创建xml字符串的输入流,然后获取可以解析的节点以获取值。
InputStream is = new ByteArrayInputStream(theXMLString.getBytes("UTF-8"));
// Build XML document
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
请记住,您将xml文件作为字符串传递。
答案 2 :(得分:1)
要阅读XML文件,请尝试以下
FileInputStream in = new FileInputStream("/sdcard/text.txt");
StringBuffer data = new StringBuffer();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader inRd = new BufferedReader(isr);
String text;
while ((text = inRd.readLine()) != null) {
inLine.append(text);
inLine.append("\n");
}
in.close();
String finalData =data.toString(); // Here is your data.
希望以上对你有用。
答案 3 :(得分:0)
尝试使用DOM Parser从Asset文件夹解析此代码:
DocumentBuilderFactory DBF;
DocumentBuilder DB;
Document dom;
Element elt;
DBF = DocumentBuilderFactory.newInstance();
DB = DBF.newDocumentBuilder();
dom = DB.parse(new InputSource(getAssets().open("city.xml")));
elt = dom.getDocumentElement();
NodeList items = elt.getElementsByTagName("item");
其中item是Node元素,根据要求添加try ctch块。