나는 어떻게 인코딩 임의의 데이터를 사용하여 XML 을 Java1.4 과 색소폰?
문제
우리가 사용하는 색소폰을 XML 구문 분석을 필요로하지 않기 때문에 전체 XML 문서를 읽으로 메모리하기 위해서 분석 하나의 값이 있습니다.저는 많은 기사를 읽는 주장 SAX 만 사용할 수 있는 구문 분석/디코딩 XML 과를 만들지 않습니다.이것이 진리입니까?
해결책
아니,그것은 진실하지 않고,인코딩할 수 있습니다 XML 어떤 작가에서 Java 를 사용하여 비슷하기:
char[] ch;
AttributesImpl atts = new AttributesImpl();
Writer writer = new StringWriter();
StreamResult streamResult = new StreamResult(writer);
SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
// SAX2.0 ContentHandler
TransformerHandler transformerHandler = tf.newTransformerHandler();
Transformer serializer = transformerHandler.getTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
// serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "nodes.dtd");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
transformerHandler.setResult(streamResult);
transformerHandler.startDocument();
atts.clear();
// atts.addAttribute("", "", "xmlns", "CDATA", "http://www.example.com/nodes");
// atts.addAttribute("", "", "xmlns:xsi", "CDATA", "http://www.w3.org/2001/XMLSchema-instance");
// atts.addAttribute("", "", "xsi:schemaLocation", "CDATA", "/nodes.xsd");
transformerHandler.startElement("", "", "node_list", atts);
// displayName element
if (displayName != null) {
transformerHandler.startElement("", "", "display_name", null);
ch = displayName.toCharArray();
transformerHandler.characters(ch, 0, ch.length);
transformerHandler.endElement("", "", "display_name");
}
// nodes element
transformerHandler.startElement("", "", "nodes", null);
atts.clear();
atts.addAttribute("", "", "node_type", "CDATA", "sometype");
transformerHandler.startElement("", "", "node", atts);
ch = node.getValue().toCharArray();
transformerHandler.startElement("", "", "value", null);
transformerHandler.characters(ch, 0, ch.length);
transformerHandler.endElement("", "", "value");
transformerHandler.endElement("", "", "node");
transformerHandler.endElement("", "", "nodes");
transformerHandler.endElement("", "", "node_list");
transformerHandler.endDocument();
String xml = writer.toString();
다른 팁
색소폰 처리기 인터페이스하도록 설계되었 쉽게 구현할 수 있습니다.그것은 쉽게 쓰는 클래스와 비슷한(아마도 앵 SAX 인터페이스)을 쉽게 전화를 체인,기억하는 요소를 닫,쉽게 특성,등등.
제휴하지 않습니다 StackOverflow