¡¡¡¡ÄÃÎÒÕâ¸ö·Ö¸îXMLµÄСÀõ×ÓÀ´Ëµ£º
XMLInputFactory xif = XMLInputFactory.newInstance(); XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml")); // ÓÃStax¶ÁÈ¡XML xsr.nextTag(); // Advance to statements element TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.setParameter(OutputKeys.OMIT_XML_DECLARATION, "no"); t.setParameter(OutputKeys.STANDALONE, "yes"); long i = 0; String action = null; while (xsr.hasNext()) { if (xsr.next() == XMLStreamConstants.START_ELEMENT) { if ("ContentItem".equals(xsr.getLocalName())) { action = getAttributeValue(xsr, "action"); } else if ("Data".equals(xsr.getLocalName())) { File file = new File("out/" + action + i++ + ".xml"); t.transform(new StAXSource(xsr), new StreamResult(file)); // Á÷ʽ±ä»»£¬×ßÄã~ // DOMResult dr = new DOMResult(); // Èç¹ûÄãÒªDom¸ñʽµÄ£¬releaseMe // t.transform(new StAXSource(xsr), dr); } } } |
¡¡¡¡ÖªµÀ×î±ä̬µÄÊÇʲôÂð£¿ÐèÒª½âÎöXMLÕû¸öÄÚÈݵ½StringÀïÃ棬²»µ¥µ¥ÊÇÊý¾Ý£¬¾ÍÊÇÕû¸öXML±êÇ©ºÍÊý¾Ý¡£Æäʵ¾ÍÊÇouputStreamתStringµÄ¹ý³Ì£º
ByteArrayOutputStream baos = new ByteArrayOutputStream(); t.transform(new StAXSource(xsr), new StreamResult(baos)); String subXMLStr = baos.toString(); |
¡¡¡¡ºÃÁË£¬Ð·°Ë¼þºÍó¦Ð·¶¼ÉÏÆëÁË£¬¿ÉÒÔ¿ª³ÔÁË¡£