AttributesImpl的clear()方法清除属性 ,addAttribute()前两个参数与命名空间有关,第三个参数是属性名,第四个参数是属性类型,第五个参数是属性值
startDocument() 打开document
endDocument() 关闭document
startElement()前两个参数与命名空间有关,第三个参数代表标签名称,第四个参数是属性集AttributesImpl对象
endElement()前两个参数与命名空间有关,第三个参数代表标签名称
注意:setOutProperty要生效必须在setResult方法之前。
7、利用handler对象进行xml文件内容的编写
//打开document
handler.startDocument();
AttributesImpl attr = new AttributesImpl();
handler.startElement("", "", "bookstore", attr);
attr.clear;
attr.addAttribute("","","id","","1");
handler.startElement("","","book","attr");
handler.endElement("", "", "bookstore");
//关闭document
handler.endDocument();
生成子节点及节点属性:
利用TransformerHandler对象进行XML文件进行设置:
TransformerHandler handler=SAXTransformerFactor.newInstance().newTransformerHndler();
打开document:handler.startDocument();
对Xml文件的格式设置需放在最开始。
设置结点及其属性:handler.startElement(String uri,String localName,String qName,Attributes atts);//
uri-名称空间 URI,如果元素没有名称空间 URI,或者未执行名称空间处理,则为空字符串
localName
- 本地名称(不带前缀),如果未执行名称空间处理,则为空字符串
qName
- 限定名(带有前缀),如果限定名不可用,则为空字符串
atts
- 连接到元素上的属性。如果没有属性,则它将是空 Attributes 对象。在 startElement
返回后,此对象的值是未定义的
设置属性的文本内容:handler.characters(char[] ch,int start,int length);//ch来自 XML 文档的字符,start数组中的开始位置,length从数组中读取的字符的个数
关闭结点:handler.endElement(String uri,String localName,String qName);
关闭document:handler.endDocument();
####一、主要用到的类:
1. SAXTransformerFactory:用于创建TransformerHandler实例
2. TransformerHandler:用于生成解析文档
3. Transformer:用于格式化输出的结果
4. Result:用于保存TransformerHandler产生的结果
####二、主要的流程
// 创建一个工厂类实例,用于创建Handler实例
SAXTransformerFactory factory = (SAXTransformerFactory)SAXTransformer.newInstance();
// 从工厂实例中获取Handler实例
TransformerHandler handler = factory.newTransformerHandler();
// 创建一个格式化传输器
Transformer transformer = handler.getTransformer();
// 设置输出属性:OutputKeys.IDENNT="yes"表示输出结果带换行
former.setOutputProperty(OutputKeys.IDENNT,"yes");
// 创建转换结果持有器,用于保存Handler输出的结果
Result result = new StreamResult(new File("demo.txt"));
// 建立handler与result之间的关联,确保handler处理的结果能正确的保存到result中
handler.setResult(result);
// handler处理文档的细节(在下一个笔记里面)