| 1 27 package domexample; 28 29 import javax.xml.parsers.DocumentBuilder ; 30 import javax.xml.parsers.DocumentBuilderFactory ; 31 import javax.xml.parsers.FactoryConfigurationError ; 32 import javax.xml.parsers.ParserConfigurationException ; 33 import javax.xml.soap.*; 34 import org.xml.sax.SAXException ; 35 import org.xml.sax.SAXParseException ; 36 import java.io.File ; 37 import java.io.IOException ; 38 import java.util.*; 39 import org.w3c.dom.Document ; 40 import org.w3c.dom.DOMException ; 41 import org.w3c.dom.NodeList ; 42 import javax.xml.transform.dom.DOMSource ; 43 44 45 public class DOMSrcExample { 46 static DOMSource domSource; 47 48 public static void main(String [] args) { 49 if (args.length != 1) { 50 System.err.println("Argument required: " + "-Dxml-file=<filename>"); 51 System.exit(1); 52 } 53 54 DOMSrcExample dse = new DOMSrcExample(); 55 56 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 57 factory.setNamespaceAware(true); 58 59 try { 60 DocumentBuilder builder = factory.newDocumentBuilder(); 61 Document document = builder.parse(new File (args[0])); 62 domSource = new DOMSource (document); 63 } catch (SAXParseException spe) { 64 System.out.println("\n** Parsing error" + ", line " + 66 spe.getLineNumber() + ", uri " + spe.getSystemId()); 67 System.out.println(" " + spe.getMessage()); 68 69 Exception x = spe; 71 72 if (spe.getException() != null) { 73 x = spe.getException(); 74 } 75 76 x.printStackTrace(); 77 } catch (SAXException sxe) { 78 System.out.println("\n** SAXException:"); 80 81 Exception x = sxe; 82 83 if (sxe.getException() != null) { 84 x = sxe.getException(); 85 } 86 87 x.printStackTrace(); 88 } catch (ParserConfigurationException pce) { 89 System.out.println("\n** ParserConfigurationException:"); 91 pce.printStackTrace(); 92 } catch (IOException ioe) { 93 System.out.println("\n** IOException:"); 95 ioe.printStackTrace(); 96 } 97 98 try { 99 MessageFactory messageFactory = MessageFactory.newInstance(); 101 102 SOAPMessage message = messageFactory.createMessage(); 104 105 SOAPPart soapPart = message.getSOAPPart(); 107 soapPart.setContent(domSource); 108 109 message.saveChanges(); 110 111 SOAPHeader header = message.getSOAPHeader(); 114 115 if (header != null) { 116 Iterator iter1 = header.getChildElements(); 117 System.out.println("Header contents:"); 118 dse.getContents(iter1, ""); 119 } 120 121 SOAPBody body = message.getSOAPBody(); 122 Iterator iter2 = body.getChildElements(); 123 System.out.println("Body contents:"); 124 dse.getContents(iter2, ""); 125 } catch (Exception ex) { 126 System.out.println("\n** Exception:"); 127 ex.printStackTrace(); 128 } 129 } 130 132 139 public void getContents(Iterator iterator, String indent) { 140 while (iterator.hasNext()) { 141 Node node = (Node) iterator.next(); 142 SOAPElement element = null; 143 Text text = null; 144 145 if (node instanceof SOAPElement) { 146 element = (SOAPElement) node; 147 148 Name name = element.getElementName(); 149 System.out.println(indent + "Name is " + 150 name.getQualifiedName()); 151 152 Iterator attrs = element.getAllAttributes(); 153 154 while (attrs.hasNext()) { 155 Name attrName = (Name) attrs.next(); 156 System.out.println(indent + " Attribute name is " + 157 attrName.getQualifiedName()); 158 System.out.println(indent + " Attribute value is " + 159 element.getAttributeValue(attrName)); 160 } 161 162 Iterator iter2 = element.getChildElements(); 163 getContents(iter2, indent + " "); 164 } else { 165 text = (Text) node; 166 167 String content = text.getValue(); 168 System.out.println(indent + "Content is: " + content); 169 } 170 } 171 } 172 } 173 | Popular Tags |