XML基础教程课后习题解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XML基础教程课后习题
习题一
1.答:HTML是用来编写Web页的语言、不允许用户自定义标记,HTML体现数据的显示格式。XML描述数据的组织结构、可自定义标记,其标记名称是对标记所包含的数据内容含义的抽象,而不是数据的显示格式。
2.答:使用UTF-8保存
5.答:(1)不可以,(2)可以,(3)不可以
6.答:Show.css:
time
{ display:block;font-size:18pt;font-weight:bold
}
hour
{ display:line;font-size:16pt;font-style:italic
}
mimute
{ display:line;font-size:9pt;font-weight:bold
}
习题二1.答:(1)使用ANSI编码。(2)可以。(3)不合理。
2.答:不相同。
3.答:(1)和(2)。
4.答:A3.xml。
5.答:“root”标记包含的文本内容都是空白字符。“a1”标记包含的文本内容:
习题三1.答:一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称之为有效的XML文件。
2.答:DTD文件的编码必须和其约束的XML文件的编码相一致。
3.答:无关。
4.答:(1) 使用SYSTEM文档类型声明的格式:
(2) 使用PUBLIC文档类型声明的格式:
5.答:一定。
6.答:(1)约束标记“张三”必须有“学号”属性
(2)约束标记“张三”必须有“学号”属性,而且学号的属性值是固定的220123。
(3)约束标记“张三”可以有也可以没有“学号”属性。
7.答:ID类型的属性的属性值具有互斥性,即所有ID类型的属性的属性值必须互不相同。
8.答:不合理。
9.答:(1)、(3)和(4)。
10.答,B.xml不是有效的。将B.xml修改为有效:
B.xml
<成绩单>
<学生>
<姓名> 张三姓名>
<成绩> 优秀成绩>
学生>
<学生>
<姓名> 李四姓名>
<成绩> 良好成绩>
学生>
成绩单>
习题四
1.答:一个返回子孙节点,而另一个只返回子节点:(1)getElementsByTagName(String name):返回一个NodeList对象,该对象由当前节点的Element类型子孙节点组成,这些子孙节点的名字由参数name指定(2)getChildNodes():节点调用该方法返回一个由当前节点的所有子节点组成的NodeList对象。
2.答:分别是DocumentType类型和Element类型。
3.
JAXPXiti5.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class JAXPXiti5
{
public static void main(String args[])
{
OutResult outContent=new OutResult();
try {
DocumentBuilderFactory factory=
DocumentBuilderFactory. newInstance();
DocumentBuilder builder= factory. newDocumentBuilder();
Document document= builder. parse(new File("a.xml")) ;
Element root=document.getDocumentElement() ;
String rootName=root.getNodeName();
NodeList nodeList=root.getChildNodes();
outContent.output(nodeList);
System.out.println("数学平均成绩"+outContent.mathAver);
System.out.println("物理平均成绩"+outContent.physicsAver);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class OutResult
{
double sumAllMath,sumAllPhysics,mathAver,physicsAver;
int mathNumber=0, physicsNumber=0;
public void output(NodeList nodeList)
{
int size=nodeList.getLength();
for(int k=0;k { Node node=nodeList.item(k); if(node.getNodeType()==Node.TEXT_NODE) { Text textNode=(Text)node; String content=textNode.getWholeText(); System.out.print(content); Element parent=(Element)textNode.getParentNode(); if(parent.getNodeName().equals("数学")) { mathNumber++; sumAllMath=sumAllMath+Double.parseDouble(content.trim()); } if(parent.getNodeName().equals("物理")) { physicsNumber++; sumAllPhysics=sumAllPhysics+Double.parseDouble(content.trim()); } } if(node.getNodeType()==Node.ELEMENT_NODE) { Element elementNode=(Element)node; String name=elementNode.getNodeName(); System.out.print(name); NodeList nodes=elementNode.getChildNodes(); output(nodes); } }