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 43 44 public class DOMExample { 45 static Document document; 46 47 public static void main(String [] args) { 48 if (args.length != 1) { 49 System.err.println("Argument required: " + "-Dxml-file=<filename>"); 50 System.exit(1); 51 } 52 53 DOMExample de = new DOMExample(); 54 55 document = null; 56 57 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 58 factory.setNamespaceAware(true); 59 60 try { 61 DocumentBuilder builder = factory.newDocumentBuilder(); 62 document = builder.parse(new File (args[0])); 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 Exception x = sxe; 80 81 if (sxe.getException() != null) { 82 x = sxe.getException(); 83 } 84 85 x.printStackTrace(); 86 } catch (ParserConfigurationException pce) { 87 pce.printStackTrace(); 89 } catch (IOException ioe) { 90 ioe.printStackTrace(); 92 } 93 94 try { 95 MessageFactory messageFactory = MessageFactory.newInstance(); 97 SOAPFactory soapFactory = SOAPFactory.newInstance(); 98 99 SOAPMessage message = messageFactory.createMessage(); 101 102 SOAPHeader header = message.getSOAPHeader(); 104 header.detachNode(); 105 106 SOAPBody body = message.getSOAPBody(); 108 109 SOAPBodyElement docElement = body.addDocument(document); 111 112 message.saveChanges(); 113 114 Iterator iter1 = body.getChildElements(); 116 de.getContents(iter1, ""); 117 } catch (Exception ex) { 118 ex.printStackTrace(); 119 } 120 } 121 123 130 public void getContents(Iterator iterator, String indent) { 131 while (iterator.hasNext()) { 132 Node node = (Node) iterator.next(); 133 SOAPElement element = null; 134 Text text = null; 135 136 if (node instanceof SOAPElement) { 137 element = (SOAPElement) node; 138 139 Name name = element.getElementName(); 140 System.out.println(indent + "Name is " + 141 name.getQualifiedName()); 142 143 Iterator attrs = element.getAllAttributes(); 144 145 while (attrs.hasNext()) { 146 Name attrName = (Name) attrs.next(); 147 System.out.println(indent + " Attribute name is " + 148 attrName.getQualifiedName()); 149 System.out.println(indent + " Attribute value is " + 150 element.getAttributeValue(attrName)); 151 } 152 153 Iterator iter2 = element.getChildElements(); 154 getContents(iter2, indent + " "); 155 } else { 156 text = (Text) node; 157 158 String content = text.getValue(); 159 System.out.println(indent + "Content is: " + content); 160 } 161 } 162 } 163 } 164 | Popular Tags |