当前位置:编程学习 > JSP >>

Java XML教程(附:源程序)

答案:sonnet.xml  这是在本教程中贯穿使用的示例 XML 文档。 <?xml version="1.0"?>  <!DOCTYPE sonnet SYSTEM "sonnet.dtd">  <sonnet type="Shakespearean">  <author>  <last-name>Shakespeare</last-name>  <first-name>William</first-name>  <nationality>British</nationality>  <year-of-birth>1564</year-of-birth>  <year-of-death>1616</year-of-death>  </author>  <title>Sonnet 130</title>  <text>  <line>My mistress` eyes are nothing like the sun,</line>  <line>Coral is far more red than her lips red.</line>  <line>If snow be white, why then her breasts are dun,</line>  <line>If hairs be wires, black wires grow on her head.</line>  <line>I have seen roses damasked, red and white,</line>  <line>But no such roses see I in her cheeks.</line>  <line>And in some perfumes is there more delight</line>  <line>Than in the breath that from my mistress reeks.</line>  <line>I love to hear her speak, yet well I know</line>  <line>That music hath a far more pleasing sound.</line>  <line>I grant I never saw a goddess go,</line>  <line>My mistress when she walks, treads on the ground.</line>  <line>And yet, by Heaven, I think my love as rare</line>  <line>As any she belied with false compare.</line>  </text>  </sonnet>  sonnet.dtd  这是我们示例文档所用的 DTD。 <!-- sonnet.dtd -->  <!ELEMENT sonnet (author,title?,text) >  <!ATTLIST sonnet  type (Shakespearean | Petrarchan) "Shakespearean">  <!ELEMENT text (line,line,line,line,  line,line,line,line,  line,line,line,line,  line,line) >  <!ELEMENT author (last-name,first-name,nationality,  year-of-birth?,year-of-death?) >  <!ELEMENT title (<!ELEMENT last-name (<!ELEMENT first-name (<!ELEMENT nationality (<!ELEMENT year-of-birth (<!ELEMENT year-of-death (<!ELEMENT line ( domOne.java  这是我们的第一个 DOM 应用。它解析一个 XML 文档并将其内容输出到标准输出。 /*  * (C) Copyright IBM Corp. 1999 All rights reserved.  *  * US Government Users Restricted Rights Use, duplication or  * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.  *  * The program is provided "as is" without any warranty express or  * implied, including the warranty of non-infringement and the implied  * warranties of merchantibility and fitness for a particular purpose.  * IBM will not be liable for any damages suffered by you as a result  * of using the Program. In no event will IBM be liable for any  * special, indirect or consequential damages or lost profits even if  * IBM has been advised of the possibility of their occurrence. IBM  * will not be liable for any third party claims against you.  */  import java.io.OutputStreamWriter;  import java.io.PrintWriter;  import java.io.UnsupportedEncodingException;  import org.w3c.dom.Attr;  import org.w3c.dom.Document;  import org.w3c.dom.NamedNodeMap;  import org.w3c.dom.Node;  import org.w3c.dom.NodeList;  import com.ibm.xml.parsers.*;  /**  * domOne.java  * Illustrates how to go through a DOM tree.  */  public class domOne  {  public void parseAndPrint(String uri)  {  Document doc = null;  try  {  DOMParser parser = new DOMParser();  parser.parse(uri);  doc = parser.getDocument();  }  catch (Exception e)  {  System.err.println("Sorry, an error occurred: " + e);  }  // We`ve parsed the document now, so let`s print it.  if (doc != null)  printDOMTree(doc);  }  /** Prints the specified node, then prints all of its children. */  public void printDOMTree(Node node)  {  int type = node.getNodeType();  switch (type)  {  // print the document element  case Node.DOCUMENT_NODE:  {  System.out.println("<?xml version="1.0" ?>");  printDOMTree(((Document)node).getDocumentElement());  break;  }  // print element with attributes  case Node.ELEMENT_NODE:  {  System.out.print("<");  System.out.print(node.getNodeName());  NamedNodeMap attrs = node.getAttributes();  for (int i = 0; i < attrs.getLength(); i++)  {  Node attr = attrs.item(i);  System.out.print(" " + attr.getNodeName() +  "="" + attr.getNodeValue() +  """);  }  System.out.println(">");  NodeList children = node.getChildNodes();  if (children != null)  {  int len = children.getLength();  for (int i = 0; i < len; i++)  printDOMTree(children.item(i));  }  break;  }  // handle entity reference nodes  case Node.ENTITY_REFERENCE_NODE:  {  System.out.print("&");  System.out.print(node.getNodeName());  System.out.print(";");  break;  }  // print cdata sections  case Node.CDATA_SECTION_NODE:  {  System.out.print("<![CDATA[");  System.out.print(node.getNodeValue());  System.out.print("]]>");  break;  }  // print text  case Node.TEXT_NODE:  {  System.out.print(node.getNodeValue());  break;  }  // print processing instruction  case Node.PROCESSING_INSTRUCTION_NODE:  {  System.out.print("<?");  System.out.print(node.getNodeName());  String data = node.getNodeValue();  {  System.out.print(" ");  System.out.print(data);  }  System.out.print("?>");  break;&n

上一个:XML 和 Java:一个强大的组合
下一个:Struts 中 Multibox 的用法

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,