DOM解析XML实现
来源:互联网 发布:nginx反向代理配置视频 编辑:程序博客网 时间:2024/06/05 09:48
下面讲解一个DOM解析XML文件,望大家参考,可能写得比较乱,大家不要介意。
第一步:创建一个xml文件:xmltest.xml
<?xml version="1.0" encoding="utf-8"?>
<layouts>
<layout name="mytextview">
<text>这是一个TextView</text>
</layout>
<layout name="mybutton">
<text>这是一个按钮</text>
</layout>
</layouts>
第二步:创建一个对应上面xml文件的javabean类XMLTest.java
public class XMLTest implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
private String textView;
private String button;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTextView() {
return textView;
}
public void setTextView(String textView) {
this.textView = textView;
}
public String getButton() {
return button;
}
public void setButton(String button) {
this.button = button;
}
}
第三步:编写实现解析代码:
public class XMLParseTestActivity extends Activity {
private ListView listview;
String xmlArray[] = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listview = (ListView) findViewById(R.id.mylist);
//调用解析xml文件后返回的集合
List list1 = getXMLTestFromXml("xmltest.xml");
//初始化数据大小
xmlArray = new String[list1.size()];
//取出集合中的信息
for (int i = 0; i < list1.size(); i++) {
XMLTest msg = (XMLTest) list1.get(i);
xmlArray[i] = msg.getName() + "," + msg.getTextView();
}
//定义适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, xmlArray);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
listview.setAdapter(adapter);
}
//解析xml文件的方法
private List<XMLTest> getXMLTestFromXml(String string) {
/*
* 解析xml文件步骤
* 1、声明DocumentBuilderFactory,DocumentBuilder,Document对象
* 2、DocumentBuilderFactory对象实例化DocumentBuilder对象
* 3、DocumentBuilder对象实例化Document对象
*/
List<XMLTest> xmltests = new ArrayList<XMLTest>();
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document document = null;
InputStream is = null;
try {
// 实例化factory对象
factory = DocumentBuilderFactory.newInstance();
// 实例化builder对象
builder = factory.newDocumentBuilder();
//获得xml文档并以流打开
is = getResources().getAssets().open(string);
//builder解析 获得文档类型
document = builder.parse(is);
// 找到根Element
Element root = document.getDocumentElement();
//获得layout为标签的集合
NodeList nodes = root.getElementsByTagName("layout");
// 遍历根节点所有子节点,layout下所有的layout
XMLTest xmltest = null;
for (int i = 0; i < nodes.getLength(); i++) {
xmltest = new XMLTest();
// 获取layout元素节点
Element layoutElement = (Element) (nodes.item(i));
// 获取layout中name的值
xmltest.setName(layoutElement.getAttribute("name"));
// 获取layout下的text
Element text = (Element) layoutElement.getElementsByTagName(
"text").item(0);
xmltest.setTextView(text.getFirstChild().getNodeValue());
xmltests.add(xmltest);
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmltests;
}
}
显示效果如下:
- DOM解析XML实现
- 递归实现DOM解析任何XML文档
- dom解析xml实现省市区动态级联
- xml的dom解析(jaxp实现)
- XML DOM---解析xml dom
- 【XML】DOM解析XML
- 解析xml dom 解析
- xml解析 Dom解析
- XML解析(增删改查)-DOM解析(Jaxp、DOM4J实现DOM解析)、SAX解析(Jaxp实现SAX解析)
- dom解析xml
- dom解析 xml
- dom解析xml
- 解析xml之--DOM
- Dom解析XML文档
- DOM解析XML文件
- dom解析xml
- dom解析xml
- xml文件解析-DOM
- 当程序报“控件创建是错误”,缺少Session引用~
- Eclipse之ANT使用
- iphone上有时候viewWillAppear不被调用
- v9用于静态页查询登陆状态以及用户信息的ajax接口
- MYSQL简单提权--Mix.dll My_udf.dll(老东西,做个备份)
- DOM解析XML实现
- Android开发环境配置
- js中prototype用法
- IE6 BUG大全
- spring中集成TimerTask执行定时任务
- Qt添加图片
- 甜言蜜语
- PowerShell Learn Resource
- vc获取系统服务信息