一:XML概念:
XML(eXtended Markup Language)可扩展标示语言
XML是跨平台、跨网络、跨语言的用来数据交换、系统配置的可扩展标示语言。
XML的优点:能够清晰地进行数据描述。
XML格式:
<?xml version="1.0" encoding="utf-8"?>
<根标签>
<子标签>数据</子标签>
...
</根标签>node
二:XML解析
1.Pull解析 (以事件常量的方式解析)
XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); // 建立解析工厂
XmlPullParser xmlParser=factory.newPullParser(); // 生成解析对象
xmlParser.setInput(new StringReader(content)); // 设置要读取的内容
int type=xmlParser.getEventType(); // 获取当前解析的事件类型常量
String tagName=xmlParser.getName(); // 获取当前的标签名称
xmlParser.next(); // 将游标下移,获取下一个事件常量
String userName=xmlParser.getText(); // 获取文本网络
2.SAX解析 (Simple Api for Xml) 针对XML的简单解析API
SAX以事件通知的方式解析XML。
自定义一个继承自DefaultHandler的类,复写其中的相关方法。
SAXParserFactory factory=SAXParserFactory.newInstance(); // 建立解析工厂
SAXParser parser=factory.newSAXParser(); // 建立解析对象
File f=new File("xxx");
实例化DefaultHandler对象handler
parser.parse(f,handler); // 解析XMLui
3.DOM解析(了解)(Document Object Model)
将XML结构以DOM树结构解析到内存中。
DOM解析能够随机访问DOM树中的节点。
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse("file对象"); // 解析XML到内存中
NodeList nodeList=doc.getElementsByTagName("标签名");
Node node = nodeList.item(index);
String nodeValue=node.getFirstChild().getNodeValue();xml