毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

过程日志修复算法实现+文献综述(3)

时间:2018-07-08 17:12来源:毕业论文
它的主要接口都在org.dom4j这个包里定义,下面介绍几个常用的接口[9]: Attribute 定义了XML的属性; Branch 为能够包含子节点的节点如XML元素(Element)和文档(


它的主要接口都在org.dom4j这个包里定义,下面介绍几个常用的接口[9]:
Attribute 定义了XML的属性;
Branch 为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为;
Comment 定义了XML注释的行为;
Document定义了XML文档;
DocumentType定义XML DOCTYPE声明;
Element定义XML元素 
Entity定义XML entity;
Node为所有的dom4j中XML节点定义了多态行为;
Text定义XML文本节点;
Visitor用于实现Visitor模式;
读写XML文档主要依赖于org.dom4j.io包,其中提供DOMReader和SAXReader两类不同方式,而调用方式是一样的。
public Document read(String fileName)throws MalformedURLException, DocumentException
{
    SAXReader reader = new SAXReader();
    Document document = reader.read(new File(fileName));   return document;  
}
  其中,reader的read方法是重载的,可以从InputStream,File,Url等多种不同的源来读取。得到的Document对象就代表了整个XML。
读取后的第二步,就是得到Root节点。熟悉XML的人都知道,一切XML分析都是从Root元素开始的。
  public Element getRootElement(Document doc){  
return doc.getRootElement(); 
 }
dom4j提供至少3种遍历节点的方法:枚举、递归、Visitor模式。本次设计采用枚举法:
// 枚举所有子节点
  for ( Iterator i = root.elementIterator(); i.hasNext(); ) {  
Element element = (Element) i.next();  
// do something
}
  // 枚举名称为foo的节点
  for ( Iterator i = root.elementIterator(foo); i.hasNext();) {  
Element foo = (Element) i.next();  
// do something  
}
  // 枚举属性
  for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {  
Attribute attribute = (Attribute) i.next(); 
 // do something  
}
2.4  XML
XML即可扩展标记语言,是标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言[10]。
在信息保存方面,XML有着自己独特的优势。现代社会的绝大部分资料都是以电子文档形式保存的,并且不同格式保存的文档需要有相应的不同软件来将其打开。若干年后,很可能某些电子文档还在,但能够打 开这些文档的软件则已遭淘汰而无法找到。此外,许多电子文档基本上是完好的,但哪怕仅有几个二进制位的错误就将导致整个文档不能打开。相比之下,以XML 格式保存的文档就不会有上述问题。因为XML文档是基于文本的,并且文档中的每项数据都有清晰的语义,非常容易被打开和阅读。此外,XML文档能够很容易 地转换为其他格式的文档,所以非常适合用来作为信息的长期保存形式。
而且XML技术非常适合面向对象的程序开发。XML文档是非常容易阅读的,不但对人,对机器也是如此。XML文档数据的逻辑结构是一种树形的层次结构,文档中的每一个元素都可以影射为一个对象,同时也可以有相应的属性和方法,因而非常适合于使用面向对象的程序设计方式来开发处理这些XML文档的应用程序。在本项目中,应用XML文档来存储Petri网和待修复的序列。
2.5  测量时间的方法
在本次设计中借助System.currentTimeMillis()方法来测量程序执行时间。注意,这个程序执行时间指的是修复过程所用时间。在修复过程开始时和结束时分别调用该方法,把得到的时间相减得到运行时间。但是,由于所测时间与系统工作状态有着很大的关系,所以在实际操作过程中采用测量5次,除去最大和最小的两个值,对剩余3个值求平均值的方法。虽然这个方法得到的结果可能还是不够精确,但可以做到尽量接近。虽然通过这个方法测量的时间也许不能用于其它计算,但是可以通过这个数据来反应时间变化的趋势,可以用来作比较。测量时间时尽可能多地关闭无关的程序。 过程日志修复算法实现+文献综述(3):http://www.751com.cn/jisuanji/lunwen_19226.html
------分隔线----------------------------
推荐内容