1.xml 头和文本转义内容
<?xml version="1.0" encoding="UTF-8" ?>
version:表示xml规范
Encoding :字符编码
Standalone[yes|no]: 是否是独立的yes不能引用外部的DTD规范文件;no表示可以引用外部的DTD规范文档
转义字符
< |
< |
小于号 |
> |
> |
大于号 |
& |
& |
和 |
' |
’ |
单引号 |
" |
" |
双引号 |
<![CDATA[<>!]]>将内容作为普通字体处理
<?处理指令名 处理指令信息?>
<?xml-stylesheettype="text/css"?>
2.DTD(DocumentType Definition) 约束xml内容
如:<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
dtd3种分类:
内部:<!DOCTYPE root[
]>
<root>Xml主体
</root>
外部:<!DOCTYPE root
SYSTEM “url”
>
公用:!DOCTYPEroot
PUBLIC “DTD标识名” “url”
>
3.xml 命名空间
作用:相当于java的包,避免元素名称重复;
xmlns= 默认命名空间
引入其他命名空间 xmlns:context="http://www.springframework.org/schema/context"
使用其他命名空间 <context:component-scan base-package="jdbc.transaction">
4.xml解析
Xerces 解析 xml jdk1.5 以上自动包含
DocumentBuilderFactory
DocumentBuilder
SAXParserFactory
SAXParser
4.1 xpath:查找元素或者属性
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)
轴(axis):定义所选节点与当前节点之间的树关系 子节点,兄弟,祖先等等
节点测试(node-test):识别某个轴内部的节点 (如选择book节点)
零个或者更多谓语(predicate):更深入地提炼所选的节点集(添加条件限制,如作者)
语法:
轴名称::节点测试[谓语]
java xpath 解析xml
XPathFactory xmlFactory=XPathFactory.newInstance();
XPath xpath=xmlFactory.newXPath();
Node node=(Node) xpath.evaluate("/configuration",node,XPathConstants.NODE);//xpath表达式,当前节点,返回元素类型
常见问题
//node.getChildNodes(); 返回的类型有: Element,Text,Attribute,RootElement,Comment,Namespace等。
//可以根据返回的节点类型过滤,得到想要的类型。
5.xml与property转换
property.loadFromXML(inputstream);
property.storeToXML(outputstream,"properties to xml");