1.XML有如下应用:
1_存储数据,即在没有数据库的情况下,是一个很好的替代品;
2_传输数据,即服务器以XML的形式向android发送数据
3_软件配置,即通用配置XML文件,通知应用程序如何处理业务
2.判断XML语法及其有效性
浏览器能原样显示XML,说明XML语法没有问题。如果XML按照
DTD规则写的要经过浏览器显示原样,还有用专门检测工具来
检测是否符合DTD规则,如果符合DTD规则才算有效。
3.DTD三中基本关联方式:
内部:<!DOCTYPE 根节点 [
<!ELEMENT 元素 (约束条件)>
<!ELEMENT 元素 (约束条件)>
。。。 。。。。。
]>
外部:<!DOCTYPE 根节点 SYSTEM "路径">
公共:<!DOCTYPE 根节点 PUBLIC 名字 "路径" >
4.DTD约束要素
元素(ELEMENT)定义
属性(ATTLIST)定义
实体(ENTITY)定义
典例:
company.dtd <!ENTITY%tip"name,loc"> <!ELEMENTcompany(emp,cust)> <!ELEMENTemp(%tip;)> <!ELEMENTcust(%tip;)> <!ELEMENTname(#PCDATA)> <!ELEMENTloc(#PCDATA)>
example.xml <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEbookstore[ <!ELEMENTbookstore(book)> <!ELEMENTbook(title+)> <!ELEMENTtitle(#PCDATA)> <!ENTITYit"我们是一名软件工程师"> ]> <bookstore> <book> <title> ⁢ </title> </book> </bookstore>
5.XML解析(dom4j解析器)
SAXReade saxreader = new SAXReader;
document xsmldocumen = saxreader.read("xml文件路径");
典例:
importjava.util.List; importorg.dom4j.Document; importorg.dom4j.Element; importorg.dom4j.io.SAXReader; /** *使用dom4j解析器 *传统方式定位标签 *XPATH方式定位d标签 */ publicclassDemo06{ publicstaticvoidmain(String[]args)throwsException{ //创建dom4j解析器对象 SAXReadersaxReader=newSAXReader(); //创建InputStream对象,指向硬盘的xml文件 DocumentxmlDocument= saxReader.read( Demo06.class.getClassLoader().getResource("cn/itcast/android/xml/tv.xml")); //ElementrootElement=xmlDocument.getRootElement(); //Stringname=rootElement.element("a").element("b").element("c").element("d").getText().trim(); //System.out.println(name); //System.out.println("----------------------------------"); //Stringxpath="/tv/a/b/c/d"; //Stringxpath="//d"; //Stringage="23"; //Stringxpath="//d[@age='"+age+"']"; Stringxpath="//e[@name='哈哈'and@pass='123']"; Elementelement=(Element)xmlDocument.selectSingleNode(xpath); //List<Element>list=xmlDocument.selectNodes(xpath); if(element!=null){ Stringname=element.getText().trim(); System.out.println(name); }else{ System.out.println("查无此人"); } } }