以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  求英文版的XML文献和其翻译,谢谢了~~  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=7932)


--  作者:Kadis
--  发布时间:5/28/2004 5:18:00 PM

--  求英文版的XML文献和其翻译,谢谢了~~
非常需要这些内容,希望各位大侠帮帮忙~~谢谢
--  作者:fayy
--  发布时间:5/28/2004 9:12:00 PM

--  
我有7000字的翻译,你有JAVA读取XML文件的程序麽?
--  作者:腰果
--  发布时间:5/28/2004 11:42:00 PM

--  
楼上的美女,是不是要这个类型的咚咚,LOOK ↓

PS:那段翻译也贡献出来吧

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;  
}  
}  

if (type == Node.ELEMENT_NODE)  
{  
System.out.println();  
System.out.print("</");  
System.out.print(node.getNodeName());  
System.out.print(`>`);  
}  
}  

/** Main program entry point. */  
public static void main(String argv[])  
{  
if (argv.length == 0)  
{  
System.out.println("Usage: java domOne uri");  
System.out.println(" where uri is the URI of the XML document you want to print.");  
System.out.println(" Sample: java domOne sonnet.xml");  
System.exit(1);  
}  

domOne d1 = new domOne();  
d1.parseAndPrint(argv[0]);  
}  
}  

domCounter.java  

这段代码解析一个 XML 文档,然后遍历 DOM 树来采集有关该文档的数据。当数据采集后将其输出到标准输出。


/*  
* (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.Document;  
import org.w3c.dom.Node;  
import org.w3c.dom.NodeList;  
import com.ibm.xml.parsers.DOMParser;  

/**  
* domCounter.java  
* This code creates a DOM parser, parses a document, then  
* prints statistics about the number and type of nodes  
* found in the document.  
*/  

public class domCounter  
{  
int documentNodes = 0;  
int elementNodes = 0;  
int entityReferenceNodes = 0;  
int cdataSections = 0;  
int textNodes = 0;  
int processingInstructions = 0;  

public void parseAndCount(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 scan the DOM tree and  
// print the statistics.  
if (doc != null)  
{  
scanDOMTree(doc);  
System.out.println("Document Statistics for " + uri + ":");  
System.out.println("====================================");  
System.out.println("Document Nodes: " + documentNodes);  
System.out.println("Element Nodes: " + elementNodes);  
System.out.println("Entity Reference Nodes: " + entityReferenceNodes);  
System.out.println("CDATA Sections: " + cdataSections);  
System.out.println("Text Nodes: " + textNodes);  
System.out.println("Processing Instructions: " + processingInstructions);  
System.out.println(" ----------");  
int totalNodes = documentNodes + elementNodes + entityReferenceNodes +  
cdataSections + textNodes + processingInstructions;  
System.out.println("Total: " + totalNodes + " Nodes");  
}  
}  

/** Scans the DOM tree and counts the different types of nodes. */  
public void scanDOMTree(Node node)  
{  
int type = node.getNodeType();  
switch (type)  
{  
case Node.DOCUMENT_NODE:  
documentNodes++;  
scanDOMTree(((Document)node).getDocumentElement());  
break;  

case Node.ELEMENT_NODE:  
elementNodes++;  
NodeList children = node.getChildNodes();  
if (children != null)  
{  
int len = children.getLength();  
for (int i = 0; i < len; i++)  
scanDOMTree(children.item(i));  
}  
break;  

case Node.ENTITY_REFERENCE_NODE:  
entityReferenceNodes++;  
break;  

case Node.CDATA_SECTION_NODE:  
cdataSections++;  
break;  

case Node.TEXT_NODE:  
textNodes++;  
break;  

case Node.PROCESSING_INSTRUCTION_NODE:  
processingInstructions++;  
break;  
}  
}  

/** Main program entry point. */  
public static void main(String argv[])  
{  
if (argv.length == 0)  
{  
System.out.println("Usage: java domCounter uri");  
System.out.println(" where uri is the URI of your XML document.");  
System.out.println(" Sample: java domCounter sonnet.xml");  
System.exit(1);  
}  

domCounter dc = new domCounter();  
dc.parseAndCount(argv[0]);  
}  
}  

saxOne.java
/*  
* (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.xml.sax.AttributeList;  
import org.xml.sax.HandlerBase;  
import org.xml.sax.Parser;  
import org.xml.sax.SAXException;  
import org.xml.sax.SAXParseException;  
import org.xml.sax.helpers.ParserFactory;  

import com.ibm.xml.parsers.SAXParser;  

/**  
* saxOne.java  
* This sample program illustrates how to use a SAX parser. It  
* parses a document and writes the document? contents back to  
* standard output.  
*/  

public class saxOne  
extends HandlerBase  
{  
public void parseURI(String uri)  
{  
SAXParser parser = new SAXParser();  
parser.setDocumentHandler(this);  
parser.setErrorHandler(this);  
try  
{  
parser.parse(uri);  
}  
catch (Exception e)  
{  
System.err.println(e);  
}  
}  

/** Processing instruction. */  
public void processingInstruction(String target, String data)  
{  
System.out.print("<?");  
System.out.print(target);  
if (data != null && data.length() > 0)  
{  
System.out.print(` `);  
System.out.print(data);  
}  
System.out.print("?>");  
}  

/** Start document. */  
public void startDocument()  
{  
System.out.println("<?xml version="1.0"?>");  
}  

/** Start element. */  
public void startElement(String name, AttributeList attrs)  
{  
System.out.print("<");  
System.out.print(name);  
if (attrs != null)  
{  
int len = attrs.getLength();  
for (int i = 0; i < len; i++)  
{  
System.out.print(" ");  
System.out.print(attrs.getName(i));  
System.out.print("="");  
System.out.print(attrs.getValue(i));  
System.out.print(""");  
}  
}  
System.out.print(">");  
}  

/** Characters. */  
public void characters(char ch[], int start, int length)  
{  
System.out.print(new String(ch, start, length));  
}  

/** Ignorable whitespace. */  
public void ignorableWhitespace(char ch[], int start, int length)  
{  
characters(ch, start, length);  
}  

/** End element. */  
public void endElement(String name)  
{  
System.out.print("</");  
System.out.print(name);  
System.out.print(">");  
}  

/** End document. */  
public void endDocument()  
{  
// No need to do anything.  
}  

//  
// ErrorHandler methods  
//  

/** Warning. */  
public void warning(SAXParseException ex)  
{  
System.err.println("[Warning] "+  
getLocationString(ex)+": "+  
ex.getMessage());  
}  

/** Error. */  
public void error(SAXParseException ex)  
{  
System.err.println("[Error] "+  
getLocationString(ex)+": "+  
ex.getMessage());  
}  

/** Fatal error. */  
public void fatalError(SAXParseException ex)  
throws SAXException  
{  
System.err.println("[Fatal Error] "+  
getLocationString(ex)+": "+  
ex.getMessage());  
throw ex;  
}  

/** Returns a string of the location. */  
private String getLocationString(SAXParseException ex)  
{  
StringBuffer str = new StringBuffer();  

String systemId = ex.getSystemId();  
if (systemId != null)  
{  
int index = systemId.lastIndexOf(`/`);  
if (index != -1)  
systemId = systemId.substring(index + 1);  
str.append(systemId);  
}  
str.append(`:`);  
str.append(ex.getLineNumber());  
str.append(`:`);  
str.append(ex.getColumnNumber());  

return str.toString();  
}  

/** Main program entry point. */  
public static void main(String argv[])  
{  
if (argv.length == 0)  
{  
System.out.println("Usage: java saxOne uri");  
System.out.println(" where uri is the URI of your XML document.");  
System.out.println(" Sample: java saxOne sonnet.xml");  
System.exit(1);  
}  

saxOne s1 = new saxOne();  
s1.parseURI(argv[0]);  
}  
}  

saxCounter.java  

/*  
* (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.xml.sax.AttributeList;  
import org.xml.sax.HandlerBase;  
import org.xml.sax.Parser;  
import org.xml.sax.SAXException;  
import org.xml.sax.SAXParseException;  
import org.xml.sax.helpers.ParserFactory;  
import com.ibm.xml.parsers.SAXParser;  

/**  
* saxCounter.java  
* This sample program calculates statistics for an XML document,  
* based on the SAX events received. When the parse is complete,  
* it prints the statistics to standard output.  
*/  

public class saxCounter  
extends HandlerBase  
{  
int startDocumentEvents = 0;  
int endDocumentEvents = 0;  
int startElementEvents = 0;  
int endElementEvents = 0;  
int processingInstructionEvents = 0;  
int characterEvents = 0;  
int ignorableWhitespaceEvents = 0;  
int warningEvents = 0;  
int errorEvents = 0;  
int fatalErrorEvents = 0;  

public void parseURI(String uri)  
{  
SAXParser parser = new SAXParser();  
parser.setDocumentHandler(this);  
parser.setErrorHandler(this);  
try  
{  
parser.parse(uri);  
}  
catch (Exception e)  
{  
System.err.println(e);  
}  

System.out.println("Document Statistics for " + uri + ":");  
System.out.println("====================================");  
System.out.println("DocumentHandler Events:");  
System.out.println(" startDocument " +  
startDocumentEvents);  
System.out.println(" endDocument " +  
endDocumentEvents);  
System.out.println(" startElement " +  
startElementEvents);  
System.out.println(" endElement " +  
endElementEvents);  
System.out.println(" processingInstruction " +  
processingInstructionEvents);  
System.out.println(" character " +  
characterEvents);  
System.out.println(" ignorableWhitespace " +  
ignorableWhitespaceEvents);  
System.out.println("ErrorHandler Events:");  
System.out.println(" warning " +  
warningEvents);  
System.out.println(" error " +  
errorEvents);  
System.out.println(" fatalError " +  
fatalErrorEvents);  
System.out.println(" ----------");  
int totalEvents = startDocumentEvents + endDocumentEvents +  
startElementEvents + endElementEvents +  
processingInstructionEvents +  
characterEvents + ignorableWhitespaceEvents +  
warningEvents + errorEvents + fatalErrorEvents;  
System.out.println("Total: " +  
totalEvents + " Events");  
}  

/** Processing instruction. */  
public void processingInstruction(String target, String data)  
{  
processingInstructionEvents++;  
}  

/** Start document. */  
public void startDocument()  
{  
startDocumentEvents++;  
}  

/** Start element. */  
public void startElement(String name, AttributeList attrs)  
{  
startElementEvents++;  
}  

/** Characters. */  
public void characters(char ch[], int start, int length)  
{  
characterEvents++;  
}  

/** Ignorable whitespace. */  
public void ignorableWhitespace(char ch[], int start, int length)  
{  
ignorableWhitespaceEvents++;  
}  

/** End element. */  
public void endElement(String name)  
{  
endElementEvents++;  
}  

/** End document. */  
public void endDocument()  
{  
endDocumentEvents++;  
}  

//  
// ErrorHandler methods  
//  

/** Warning. */  
public void warning(SAXParseException ex)  
{  
warningEvents++;  
}  

/** Error. */  
public void error(SAXParseException ex)  
{  
errorEvents++;  
}  

/** Fatal error. */  
public void fatalError(SAXParseException ex)  
throws SAXException  
{  
fatalErrorEvents++;  
throw ex;  
}  

/** Main program entry point. */  
public static void main(String argv[])  
{  
if (argv.length == 0)  
{  
System.out.println("Usage: java saxCounter uri");  
System.out.println(" where uri is the URI of your XML document.");  
System.out.println(" Sample: java saxCounter sonnet.xml");  
System.exit(1);  
}  

saxCounter sc = new saxCounter();  
sc.parseURI(argv[0]);  
} }   
在保留http://www.javajia.com原出处的情况下,欢迎转载!


--  作者:Kadis
--  发布时间:5/30/2004 4:36:00 PM

--  
我有的,谢谢,请发到我的邮箱:yamol@vip.sina.com
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
9,082.031ms