您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > XML期末考试试题复习题
–1–6、XML文档中语句!DOCTYPEdlibSYSTEM“mydtd.dtd中SYSTEM的作用是(C)A、指定运行的操作系统B、打开系统文件C、连接外部DTD文件四、根据下面内部DTD文档,完成后继的xml文档。(15分)1.什么是XML?XML的特点有哪些?答案:XML(eXtensibleMarkupLanguage,可扩展标记语言),是由万维网联盟(WorldWideWebConsortium,W3C)定义的一种数据交换的规范,是Web上的数据通用语言,使用一系列简单的标记描述数据。XML的特点有:(1)XML是一种简单、与平台无关并被广泛采用的标准,可用于Internet上的各种应用。(2)XML兼容SGML,所以多数SGML应用可转化为XML。(3)XML文件同HTML文件一样易于创建。(4)XML文件内容、结构简单,可以更加灵活地进行编程,减少了服务器的工作量。(5)XML文件结构严谨,可以轻松被计算机程序解析。(6)XML相对于HTML的优点是它将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同源的数据成为可能。2.简述XML与HTML的区别。答案:(1)HTML语言是用来格式化web数据的语言,有固定的标记,每一个标记都有其固定的用法。XML允许自定义标记,用户可以自己定义标记来描述自己领域的信息。(2)HTML的语法也相当宽松,标记不一定要配对使用,名称不区分大小写。XML语言有其严格的语法规则,标记必须成对使用,严格区分名称的大小写。(3)不能够很好的描述数据的结构,本质上是一种格式显示语言。XML语言的特点就是将信息的内容和它们的显示样式区分开来,焦点是数据的内容。3.简述XML解析器的种类及解析步骤。答案:XML的解析器分成两大类:综合的解析器和专用的解析器。综合的解析器又分为:基于DOM的解析器和基于事件的解析器。基于DOM的解析器解析XML文件的一般步骤如下:(1)扫描命令行得到XML文件名;(2)创建一个解析器对象;(3)告诉解析器解析命令行中给定的XML文件;(4)遍历DOM结果树向标准输出打印;基于SAX的解析器解析XML文件的一般步骤如下:(1)创建一个事件处理程序。(2)创建SAX解析器。(3)向解析器分配事件处理程序。–2–(4)解析文档,同时向事件处理程序发送每个事件。1.什么是有效的XML文件?IE能否检查一个XML文件的有效性?答案:符合XML语法规则的XML文件称为规范的XML文件,规范的XML文件再满足其关联的DTD或Schema文件中的约束,这样的XML文件就称为有效的XML文件。IE不能检查一个XML文件是否是有效的,只能检查XML文件的规范性。要检查一个XML文件的有效性,需通过DOM或SAX解析器。2.如何将DTD关联到XML文件?答案:通过文档类型声明来关联DTD和XML。格式为:!DOCTYPE根标记名称SYSTEM“DTD的URI”!DOCTYPE根标记名称PUBLIC“正式公用标识符”“DTD的URI”SYSTEM用于非标准化的外部DTD,PUBLIC用于标准化的外部DTD。XML文件如何调用CSS样式?答案:XML文件调用CSS有3中形式:引用一个外部CSS文件、将CSS语句嵌入到XML文件、同时应用内部CSS和外部CSS。XML文件调用独立的CSS文件的方法是在XML文件中加入下面一条处理指令:?xml-stylesheettype=”text/css”href=”CSS文件的URI”?调用内部的CSS通过名称空间的方法引入HTML的style标记:persionsxmlns:HTML=””HTML:styleCSS代码/HTML:style在XML文件中同时加入上面两段代码就是同时应用内部CSS和外部CSS。1.XSL与CSS有哪些不同之处?答案:XSL和CSS都可以格式化XML。它们之间主要有以下不同之处:(1)CSS有局限性。CSS没有办法让XML文件中的同一个数据多次在页面上显示出来,而XSL却能做到这一点。这是因为它们的需找数据的机理是不同的,CSS技术的显示机理是从头到尾一次扫描XML文件,遇到匹配的标记,就以当前的样式显示。XSL则是通过路径的方式来定位数据,从而可以轻易地提取出特定的数据。(2)CSS语法简单。CSS只是通过选择符和属性列表来定义数据的样式,XSL则提供了循环、条件、选择等控制语句。从这方面讲,XSL更接近于程序设计语言,可以和其他语言进行数据交互,较CSS有本质上的区别。(3)从语法上讲,XSL是一种特殊的XML文件。因此,XSl必须满足XML规范。CSS则是具有其自身语法的语言。2.一个XSL文件的基本结构是什么?答案:XSL文件是一个特殊的XML文件,所以,XSL的文件结构必须满足XML规范,一个XSL样式文–3–件也必须有XML声明。编码必须和其关联的XML文件编码一致。XSL样式文件的根标记必须是“stylesheet”,必须包含版本声明。使用的名称空间是。还应该包含根模板。一个XSL样式文件的最基本的结构应该如下代码所示:?xmlversion=1.0?xsl:stylesheetversion=1.0xmlns:xsl=:templatemath=/内容描述/xsl:template/xsl:stylesheet1.什么是数据岛?为什么要引用数据岛?如何声明一个数据岛?答案:数据岛是指存在于HTML页面中的XML代码,作为HTML页面数据的来源。通过数据岛这种技术,实现了页面范围内数据和显示的分离。可以提高数据的共享性,方便数据的维护;可以提高程序的扩展性和代码的重用性。声明数据岛通过标记xml实现,声明内部数据岛时,把XML代码段写在标记xml之间。声明外部数据岛时,通过标记xml的src属性指明外部的XML文件。在声明数据岛时,需要通过标记xml的id属性为数据岛命名,用于标识这个数据岛。2.如何实现HTML对象和数据岛的绑定并取出需要的数据?答案:在HTML中实现对象和数据岛绑定通过对象的“datasrc”属性实现,属性的值为“#”加上数据岛的名称。从数据岛中取数据的方法是通过HTML对象的“datafld”属性实现,吧需要的数据的标记名称做为“datafld”属性的值。DOM接口中的Document节点有哪两个子节点?分别代表什么意义?答案:Document类型节点的两个子节类型点是DocumentType类型和Element类型。DocumentType类型节点对应XML文件所关联的DTD文件,通过DocumentType节点的子孙关系可以分析并获得XML文件所关联的DTD文件中的数据。Element类型节点对应XML文件的标记节点,通过Element节点的子孙关系可以获得XML文件中的数据,Element节点的子节点有Element节点、Text节点和CDATASection节点。2.Attr节点是Element节点的子节点吗?答案:不是。在XML文件中,属性是标记信息的补充描述,不是标记的子标记。所以,在DOM中Attr对象是包含在Element对象中的,不是Element节点的子节点。要获得Element节点的Attr节点需要Element节点调用getAttribute()方法,该方法返回一个NamedNodeMap对象,NamedNodeMap对象由节点组成,这些节点可以转换为Attr节点。3.有如下XML代码段:–4–elementtext/element可以通过哪些方法获得标记element中的数据“text”?答案:第一种方法:获得Element节点“element”,通过Node接口的getTextContent()方法获得“element”节点的文本数据。第二种方法:获得Element节点“element”的子节点,即Text类型节点,通过Text节点的getWholeText()方法获得文本数据。4.编写Java程序,解析如下的XML文件,要求输出的结果如图8-12所示。?xmlversion=”1.0”encoding=”gb2312”?scorename小李math89/mathenglish90/english/namename小张math92/mathenglish87/english/namename小赵math95/mathenglish90/english/name/score图8-12程序运行结果答案:importorg.w3c.dom.*;importjavax.xml.parsers.*;publicclassxiti4{publicstaticvoidmain(String[]args){intn=0;floatmathscore=0;–5–floatenglishscore=0;floattotalmath=0;floattotaleng=0;try{DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();Documentdocument=builder.parse(xiti4.xml);System.out.println(=====成绩单=====);NodeListnodeList=document.getElementsByTagName(name);for(inti=0;inodeList.getLength();i++){Nodenode=nodeList.item(i);NodeListcNodeList=node.getChildNodes();System.out.print(cNodeList.item(0).getTextContent());for(intj=0;jcNodeList.getLength();j++){NodecNode=cNodeList.item(j);if(cNode.getNodeType()==Node.ELEMENT_NODE){StringnodeName=cNode.getNodeName();if(nodeName==math){System.out.print(nodeName+:);mathscore=Float.parseFloat(cNode.getTextContent());totalmath+=mathscore;System.out.println(mathscore);}if(nodeName==english){System.out.print(nodeName+:);englishscore=Float.parseFloat(cNode.getTextContent());totaleng+=englishscore;System.out.println(englishscore);n++;System.out.println(总分:+(mathscore+englishscore));}}}}System.out.println(=====平均分=====);System.out.println(math:+(totalmath/n));–6–System.out.println(english:+(totaleng/n));}catch(Exceptione){e.printStackTrace();}}}
本文标题:XML期末考试试题复习题
链接地址:https://www.777doc.com/doc-6172833 .html