package cn.com.sax;
import java.io.OutputStream;
import java.io.StringWriter;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
import android.util.Log;
class
SxaCreateXml {
public
String saxToXml(OutputStream output) {
String xmlStr = null;
try
{
Result resultXml =
new
StreamResult(output);
StringWriter writerStr =
new
StringWriter();
Result resultStr =
new
StreamResult(writerStr);
SAXTransformerFactory sff = (SAXTransformerFactory) SAXTransformerFactory
.newInstance();
TransformerHandler th = sff.newTransformerHandler();
Transformer transformer = th.getTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING,
"UTF-8"
);
transformer.setOutputProperty(OutputKeys.INDENT,
"yes"
);
th.setResult(resultXml);
th.startDocument();
AttributesImpl attr =
new
AttributesImpl();
th.startElement(
""
,
"calsses"
,
"calsses"
, attr);
attr.clear();
attr.addAttribute(
""
,
"name"
,
"name"
,
""
,
"一年级"
);
attr.addAttribute(
""
,
"num"
,
"num"
,
""
,
"10"
);
th.startElement(
""
,
""
,
"group"
, attr);
attr.clear();
attr.addAttribute(
""
,
"name"
,
"name"
,
""
,
"小明"
);
attr.addAttribute(
""
,
"age"
,
"age"
,
""
,
"7"
);
th.startElement(
""
,
""
,
"person"
, attr);
attr.clear();
th.startElement(
""
,
""
,
"chinese"
, attr);
th.characters(
"语文90"
.toCharArray(), 0,
"语文90"
.length());
th.endElement(
""
,
""
,
"chinese"
);
th.startElement(
""
,
""
,
"english"
, attr);
th.characters(
"英语80"
.toCharArray(), 0,
"英语80"
.length());
th.endElement(
""
,
""
,
"english"
);
th.endElement(
""
,
""
,
"person"
);
th.endElement(
""
,
""
,
"group"
);
th.endElement(
""
,
"calsses"
,
"calsses"
);
th.endDocument();
xmlStr = writerStr.getBuffer().toString();
}
catch
(TransformerConfigurationException e) {
Log.e(
"TEST"
,
""
+e.toString());
}
catch
(SAXException e) {
Log.e(
"TEST"
,
""
+e.toString());
}
catch
(Exception e) {
Log.e(
"TEST"
,
""
+e.toString());
}
Log.e(
"TEST"
,
"生成的"
+xmlStr);
return
xmlStr;
}
}