xml实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院计算机科学系实验报告书
课程名:《计算机新技术》
题目:编写并验证良构的XML文档
班级:软件102班
学号:111003232
姓名:叶海飚
一.实验目的
(1)通过实验,了解XMP SPY的集成开放环境
(2)通过实验,熟悉并掌握XML文档的良构性要求(5点要求)
(3)通过实验,掌握namespace的作用和用法
(4)通过实验,初步掌握利用标准DOM接口,实现对XML文档(使用namespace和不使用namespace)
的解析
(5)能够编写一个良构的XML文档
二.实验内容
(1)编写两份XML文档
(2)用XML SPY验证XML文档的良构性。
(3)编写Java程序,验证XML文档的良构性。
三.实验步骤
(1)在没有联网的情况下,打开XMLSPY IDE环境
(2)分别编写零分良构的XML文档,一份使用namespace,一份不使用namespace,文档内容自拟。
(3)用XML SPY分别验证两份XML文档的良构性(well-formed)
(4)编写Java程序,分别验证XML文档的良构性。
四.实验结果
未使用namespace的XML文档
使用namespace的XML文档
未使用namespace文档的良构性Java验证
package shiyan1;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.SAXParseException;
public class TestReadXmlFile {
public static final String XML_FILE_PATH="C:\\Users\\yeh\\Desktop\\xml实验\\第一次实验\\shiyan\\实验1.1.xml";
public static void main(String[] args) {
DocumentBuilderFactory factory=null;
DocumentBuilder builder=null;
Document document=null;
MyXmlHandler handler=new MyXmlHandler();
Element stock=null;
NodeList children=null;
int size=0;
try{
factory=DocumentBuilderFactory.newInstance();
builder=factory.newDocumentBuilder();
builder.setErrorHandler(handler);
document=builder.parse(new File(XML_FILE_PATH));
stock=document.getDocumentElement();
children=stock.getChildNodes();
size=children.getLength();
for(int i=0;i<=size-1;i++)
{
Node node=(Node) children.item(i);
if(node.getNodeType()==Node.TEXT_NODE){
continue;
}
String nodeName=node.getNodeName();
String nodeValue=node.getTextContent();
System.out.printf("\nn%15s: %s",nodeName,nodeValue); }
}
catch(Exception e){
System.err.println(e);
}
}
}
class MyXmlHandler extends DefaultHandler{
private String errorMessage;
@Override
public void error (SAXParseException e)throws SAXException
{
this.errorMessage=e.getMessage();
System.err.println("一般错误"+this.errorMessage);
}
public void fatalError(SAXParseException e)throws SAXException {
this.errorMessage=e.getMessage();
System.err.println("致命错误"+this.errorMessage);
}
}