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"> <!ELEMENT company(emp,cust)> <!ELEMENT emp(%tip;)> <!ELEMENT cust(%tip;)> <!ELEMENT name(#PCDATA)> <!ELEMENT loc(#PCDATA)>
example.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bookstore [ <!ELEMENT bookstore (book)> <!ELEMENT book(title+)> <!ELEMENT title(#PCDATA)> <!ENTITY it "我们是一名软件工程师"> ]> <bookstore> <book> <title> ⁢ </title> </book> </bookstore>
5.XML解析(dom4j解析器)
SAXReade saxreader = new SAXReader;
document xsmldocumen = saxreader.read("xml文件路径");
典例:
import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * 使用dom4j解析器 * 传统方式定位标签 * XPATH方式定位d标签 */ public class Demo06 { public static void main(String[] args) throws Exception{ //创建dom4j解析器对象 SAXReader saxReader = new SAXReader(); //创建InputStream对象,指向硬盘的xml文件 Document xmlDocument = saxReader.read( Demo06.class.getClassLoader().getResource("cn/itcast/android/xml/tv.xml")); //Element rootElement = xmlDocument.getRootElement(); //String name = rootElement.element("a").element("b").element("c").element("d").getText().trim(); //System.out.println(name); //System.out.println("----------------------------------"); //String xpath = "/tv/a/b/c/d"; //String xpath = "//d"; //String age = "23"; //String xpath = "//d[@age=‘"+age+"‘]"; String xpath = "//e[@name=‘哈哈‘ and @pass=‘123‘]"; Element element = (Element) xmlDocument.selectSingleNode(xpath); //List<Element> list = xmlDocument.selectNodes(xpath); if(element!=null){ String name = element.getText().trim(); System.out.println(name); }else{ System.out.println("查无此人"); } } }
时间: 2024-09-29 17:54:39