-
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();
查看全部 -
1、新建DOM树newDocument
2、创建根节点createElement
3、把根节点添加到DOM树中appendChild
4、创建子节点
5、把子节点添加到根节点中
6、添加属性setAttribute
注:
1、实际代码编写顺序,先全部创建完,再一起添加
2、属性不需要创建,直接添加
查看全部 -
四种生成xml方式对比:
DOM:基于tree
SAX:基于事件,不可向已生成xml文件添加结点
JDOM、DOM4J:基于底层API
查看全部 -
JDOM设置XML格式:
Format format=Format.getCompactFormat();//创建Format对象,设置生成xml文档格式
format.setIndent(String index)l//设置换行
faomat.setEncoding(String encoding);//设置文档编码格式
查看全部 -
生成子节点:Element channel=new Element("channel");
rss.addContent(channel);//添加channel结点到根节点
Element title=new Element("title");
title.setText("国内最新新闻");//设置结点文本内容
channel.addContent(title);//添加title结点到channel结点
查看全部 -
//生成根节点
Element rss=new Element("rss");
//为根节点属性,参数设置属性名和属性值
rss.setAttribute("version","2.0");
//生成一个document对象,含有一个根节点对象
Document document=new Document(rss);
//创建XMLOutputter对象
XMLOutputter outputer=new XMLOutputter();
//利用output将document对象转换为xml文档
outputer.output(document, new FileOutputStream(new File("rssnews.xml")));
查看全部 -
定义是否需要将特殊字符转义:writer.setEscapeText(false);//默认为true
查看全部 -
设置生成xml的格式:OutputFormat format=OutputFormat.createPrettyPrint();
设置编码:format.setEncoding(String encoding);
可在生成xml文件时加入格式:XMLWriter writer=new XMLWriter(new FileOutputStream(new File(String fileName)),format);
查看全部 -
生成根节点和属性:
创建document对象,代表整个xml文档:Document document=DocumentHelper.createDocument();
创建根节点:Element rss=document.addElement("rss");
添加属性:rss.addAttribute(String arg0,String arg1);
生成子节点和内容:Element channel=rss.addElement("channel");
Element title=channel.addElement("title");
设置文字内容:title.setText(String arg0);
生成xml文件:XMLWriter writer=new XMLWriter(new FileOutputStream(new File("rssnews.xml")));
writer.write(docment);
writer.close();
查看全部 -
创建AttributesImpl对象用于创建属性:AttributeImpl attr=new AttributeImpl();
添加属性:attr.addAttribute(String uri,String localName,String qName,String type,String value);//名称空间 URI,本地名称,限定(加前缀的)名称,字符串形式的属性类型,属性值
清空已有属性:attr.clear();
查看全部 -
生成子节点及节点属性:
利用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();
查看全部 -
创建一个SAXTransformerFactory对象:SAXTransformerFactory tff=(SAXTransformerFactory)SAXTransformerFactory.newInstance();
创建TransformerHandler对象:TransformerHandler handler=tff.newTransformerHandler();
创建Transformer对象:Transformer tf=handler.getTransformer();
设置Transformer对象生成XML文件格式:tr.setOutputProperty(String name,String value);
将XML文件与handler对象关联:handler.setResult(new StreamResult(new FileOutputStream(File file)));
查看全部 -
生成节点间的文本:Element name=document.creatElement("name");
name.setTextContent("小王子");
可设置xml文件是否有DTD、Schema约束:document.setXnlStandalone(true);//不含DTD、Schema约束
查看全部 -
创建Transformer对象:Transformer tf=TransformerFactory.newInstance().newTransformer();
设置输出属性,指定了输出属性名称的非 null String,它可以是名称空间限定的:tf.setOutputProperty(String name,String value);
通过transform方法将Document对象转化为Xml文件:tf.transform(new DOMSourse(document),new StreamResult(new File(String fileName)));
查看全部 -
创建DocumentBuilder对象:DocumentBuilder db=new DocumentBuilderFactory.newInstance().newDocumentBuilder();
创建Document对象:Document document=db.newDocument();
创建节点:Element element=document.createElement(String tagName);
添加结点:document.appendChild(Node newNode);
添加属性:element.setAttribute(String name,String value);
查看全部
举报