1.xml名称空间通过一系列属性来声明,这些属性的名字必须是xmlns或以xmlns:作为前缀
2.名称空间声明的两个形式:
<元素名 xmlns:prefixname="URI"> 其中prefixname表示名称空间前缀
<元素名 xmlns="URI"> 声明了一个缺省的名称空间,表示该元素及其内容中所有没有前缀的元素都属于该缺省名称空间。
【注意】:在声明名称空间时,选择的URI不需要指向实际内容,也可以不存在任何东西,它只是形式上的标识符,唯一目的是提供一个唯一的名字。
3.xml文档解析API:DOM、SAX
DOM:document object model, W3C官方推荐
SAX:simple API for xml, xml社区标准
DOM和SAX只是定义了标准接口,没有实现
4.Apache的Xerces是一个应用广泛的解析器,它实现了DOM和SAX的接口。如SAX定义的解析器接口是org.xml.sax.XMLReader,Xerces中提供的实现类是org.apache.xerces.parsers.SAXParser,在应用程序中可以采用如下方式访问XML文档:
org.xml.sax.XMLReader sp= new org.apache.xerces.parsers.SAXParser();
FileInputStream fis = new FileInputStream("test.xml");
InputSource is = new InputSource(fis);
sp.setContentHandler(new MyContentHandler());//设置内容事件处理器
sp.parse(is);
其它的解析器还有oracle的xdk
5、JAXP(Java API for XML Process)
屏蔽了不同厂商解析器的具体实现,可以是开发人员以一种标准的方式对XML编程
6.使用DOM接口解析xml文件的步骤:
(1)得到工程类实例 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
(2)利用工程类实例获得DOM解析器对象:DocumentBuilder db = dbf.newDocumentBuilder();
(3)利用解析器对象的parse方法解析XML文档,返回一个表示整个文档的documen对象:
Document doc = db.parse("src/Student.xml");
7.JDOM解析xml文档:
获得SAXBuilder对象实例:SAXBuilder saxbd = new SAXBuilder();
获得表示整个文档的Document对象:Document doc = saxbd.build("Student.xml");
获得xml文档的跟节点:Element root = doc.getRootElement();
处理.........
输出,获得输出对象:XMLOutputter xmlout = new XMLOutputter();
设置输出格式:Format fm =Format.getPrettyFormat();fm.setIndent(" ");xmlout.setFormat(fm);
输出回文件:xmlout.output(doc, new FileOutputStream("src/Student.xml"));
输出到标准输出:xmlout.output(doc, System.out);
可见,用JDOM处理XML文档要比直接用DOM API要简化和方便得多。
8、DOM4J 比JDOM具有更好的灵活性,性能也全面优于JDOM.
DOM4J采用了访问者模式对xml文档进行解析和访问,编程时只要实现一个继承自VisitorSupport类(该类实现了DOM4J的Visitor接口,但是都是空实现)即可,例如:
public class VisitorTest {
/**
* 以访问者模式解析XML文档。访问者模式通常用于处理对象树结构,树种的每一个节点都可以
* 接收一个访问者对象,节点对象向访问者对象传递自身,而访问者对象调用节点对象的操作。
* 这这种模式一般用于节点类型比较固定的应用。
*/
public static void main(String[] args) {
SAXReader sr = new SAXReader();
try {
Document doc = sr.read(new File("src/Student.xml"));
doc.accept(new MyVisitor());
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
class MyVisitor extends VisitorSupport{
public void visit(Attribute node) {
System.out.println("Attribute: " + node.getName() + "="+node.getValue());
}
public void visit(Element node) {
if (node.isTextOnly()){
System.out.println("Element: " + node.getName() + " "+ node.getText());
}else{
System.out.println("---------" + node.getName() +"--------");
}
}
public void visit(ProcessingInstruction node) {
System.out.println("PI: " + node.getTarget() + " " +node.getText());
}
}
DOM4J保存xml文档:
OutputFormat fm = new OutputFormat(" ",true);
try {
XMLWriter xw = new XMLWriter(newFileWriter("student1.xml"),fm);
xw.write(doc);
xw.flush(); //刷新缓冲,否则缓冲区的内容不会立即写入文件
} catch (IOException e) {
e.printStackTrace();
}
分享到:
相关推荐
这是一个基于XML的简易联系人备忘录,将用户输入的数据,用XML的形式存储;没有使用数据库。
这是xml啊。
XML知识技能培训XML知识技能培训XML知识技能培训
XML基础知识大全..XML基础知识大全
XML基础知识 一、 XML: a) XML是Extensible Markup Language的缩写,即可扩展标记语言,是一种简单的数据存储语言,使用一系列简单的标记来描述数据。 二、 XML的特点: a) XML与操作系统、编程语言的开发平台都...
面试知识点总结--XML.pdf
Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件1
xml学习知识
本文是对TinyXml工具的一些知识点的理解。
xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作
Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件4
XMLBOOK xml基础知识!为网页类型!下载后无需安装,有IE就可以浏览学习。
XML入门到熟练使用的超级详细资料。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
DOM初步 DOM是Document Object Model的缩写,即文档对象模型。...通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取XML文档的内容。
xml 解析 dom 文档对象模型(随机访问) 效率慢 受大小限制(10M) SAX 事件驱动(效率高,不受大小限制) 一、Dom4j下载及使用Dom4j读写XML简介: 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站...
xml教程,详尽的介绍了xml的发展,语法,字符集,及连接数据库,应用前景等等知识
xml基本知识,两种常见的xml约束,三种常见的xml解析方式
xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。
XML初步知识讲义,适合于XML知识的初学者。