我想从sdcard解析xml文件。我使用DOM概念。这里我附上了代码
InputStream filename = null;
Document obj_doc = null;
DocumentBuilderFactory doc_build_fact = null;
DocumentBuilder doc_builder = null;
filename = new FileInputStream("/sdcard/filename.xml");
doc_build_fact = DocumentBuilderFactory.newInstance();
doc_builder = doc_build_fact.newDocumentBuilder();
obj_doc = doc_builder.parse(filename);
NodeList obj_nod_list = null;
if (null != obj_doc) {
org.w3c.dom.Element feed = obj_doc.getDocumentElement();
obj_nod_list = feed.getElementsByTagName("MyTag");
}
我不知道如何从xml文件中获取String。任何人都可以指导我从xml获取字符串变量。
答案 0 :(得分:0)
您对DocumentBuilder等的初始化看起来是正确的。
您的XML文件是什么样的?如果您有这样的事情:
<?xml version="1.0" encoding="UTF-8"?>
<moviedatabase>
<movie>
<title>Ace Ventura</title>
<year>1995</year>
</movie>
<movie>
<title>Elisabethtown</title>
<year>2005</year>
</movie>
</moviedatabase>
您可以首先获取NodeList中的所有电影:
Element root = obj_root.getDocumentElement();
NodeList items = root.getElementsByTagName("movie");
然后你可以获得如下的标题字符串:
for (int i = 0; i < items.getLength(); i++) {
Node item = items.item(i);
NodeList properties = item.getChildNodes();
for (int j = 0; j < properties.getLength(); j++) {
Node property = properties.item(j);
String name = property.getNodeName();
if (name.equalsIgnoreCase("title")) {
// Store it where you want
String myTitle = property.getFirstChild().getNodeValue();
}
if (name.equalsIgnoreCase("year")) {
String year = property.getFirstChild().getNodeValue();
}
}
}
您可以在以下部分找到有关DOM解析here的更多信息:使用DOM
享受