Java——SAX⽣成XML⽂件SAX⽣成XML⽂件
准备⼯作
创建⼀个SAXTransformerFactory 类对象
//创建⼀个 SAXTransformerFactory 类对象
SAXTransformerFactory tff = (wInstance();
通过SAXTransformerFactory 对象创建⼀个 Transformer 对象
//通过 SAXTransformerFactory 对象创建⼀个 TransformerHandler 对象
TransformerHandler handler = wTransformerHandler();
设置 xml ⽂件编码格式和⾃动换⾏
//设置⽣成的 XML ⽂件编码格式
tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");
/
/设置⽣成的 XML ⽂件⾃动换⾏
tr.setOutputProperty(OutputKeys.INDENT, "yes");
判断⽣成的 xml ⽂件是否存在,不存在就创建⼀个新的
//如果不存在,就创建⼀个新的 XML ⽂件
File file = new File("l");
if (!ists()) {
}
创建⼀个 Result 对象,并且使其与 TransformerHandler对象关联
//创建⼀个Result 对象,并且使其与 TransformerHandler 对象关联
Result result = new StreamResult(new FileOutputStream(file));
handler.setResult(result);
利⽤ handler 对象进⾏ xml ⽂件内容的编写
打开 document
//打开 document
handler.startDocument();
⽣成根节点标签
AttributesImpl atts = new AttributesImpl();
//根节点开始标签
handler.startElement("", "", "School", atts);
设置字节点的属性和属性值并创建⼦节点的开始标签
//设置属性和属性值
atts.addAttribute("", "", "id", "", "1");
//⼦节点开始标签
handler.startElement("", "", "student", atts);
创建⼦节点下的 name 节点并给其添加内容
atts.clear();  //清空⼦节点设的值
//字节点下name节点开始标签
handler.startElement("", "", "name", atts);
String name="⼩王";
handler.CharArray(), 0, name.length());
//字节点下name节点结束标签
有开始就结束,在 XML 当中标签都是成对出现的,下⾯就是结束标签,以及关闭 document对象//⼦节点结束标签
//根节点结束标签
//关闭 document
运⾏结果:
<?xml version="1.0" encoding="utf-8"?><School>
<student id="1">
<name>⼩王</name>
</student>
</School>
完整代码:
l.transform.OutputKeys;
l.transform.Result;
l.transform.Transformer;
l.transform.TransformerConfigurationException;
l.transform.sax.SAXTransformerFactory;
l.transform.sax.TransformerHandler;
l.transform.stream.StreamResult;
l.sax.SAXException;
l.sax.helpers.AttributesImpl;
public class CreateXMLBySAX {
public static void main(String[] args) {
//创建⼀个 SAXTransformerFactory 类对象
SAXTransformerFactory tff = (wInstance();
try {
//通过 SAXTransformerFactory 对象创建⼀个 TransformerHandler 对象
TransformerHandler handler = wTransformerHandler();
//通过 TransformerHandler 对象创建⼀个 Transformer 对象
Transformer tr = Transformer();
//设置⽣成的 XML ⽂件编码格式
tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");
/
/设置⽣成的 XML ⽂件⾃动换⾏
tr.setOutputProperty(OutputKeys.INDENT, "yes");
//如果不存在,就创建⼀个新的 XML ⽂件
File file = new File("l");
if (!ists()) {
}
//创建⼀个Result 对象,并且使其与 TransformerHandler 对象关联
Result result = new StreamResult(new FileOutputStream(file));
handler.setResult(result);
//利⽤ handler 对象进⾏ XML ⽂件内容的编写
/
/打开 document
handler.startDocument();
//为了创建节点属性和属性值
AttributesImpl atts = new AttributesImpl();
//根节点开始标签
handler.startElement("", "", "School", atts);
//atts.clear();  //清空 atts 的值
//设置属性和属性值
atts.addAttribute("", "", "id", "", "1");
//⼦节点开始标签
handler.startElement("", "", "student", atts);
atts.clear();  //清空⼦节点设的值
//字节点下name节点开始标签
handler.startElement("", "", "name", atts);
String name="⼩王";
handler.CharArray(), 0, name.length());
//字节点下name节点结束标签
//⼦节点结束标签
//根节点结束标签
/
/关闭 document
} catch (TransformerConfigurationException e) {            e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();xml标签大全
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。