标记xml基础教程课后习题解答

xml教程  时间:2021-03-15  阅读:()

精品文档

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使用ANS I编码。 2可以。 3不合理。

2答不相同。

3答 1和2。

4答 A3.xml。

5答 “root”标记包含的文本内容都是空白字符。 “a1”标记包含的文本内容:<CCTV5>。 “a2”标记包含的文本内容:子曰"有朋自远方来,不亦乐乎"。习题三1答一个规范的XML文件如果和某个DTD文件相关联并遵守该DTD文件规定的约束条件就称之为有效的XML文件。

2答 DTD文件的编码必须和其约束的XML文件的编码相一致。

3答无关。

4答 (1)使用SYSTEM文档类型声明的格式

<DOCTYPE根标记的名称SYSTEM "DTD文件的URI">

(2)使用PUBLIC文档类型声明的格式

<!DOCTYPE根标记的名称PUBLIC "正式公用标识符" "DTD文件的URI">

5答一定。

6答 1约束标记“张三”必须有“学号”属性

2约束标记“张三”必须有“学号”属性而且学号的属性值是固定的

220123。

3约束标记“张三”可以有也可以没有“学号”属性。

精品文档

7答 ID类型的属性的属性值具有互斥性 即所有ID类型的属性的属性值必须互不相同。

8答不合理。

9答 1、 3和4。

10答 B.xml不是有效的。将B.xml修改为有效

B.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE 成绩单 SYSTEM "A.dtd">

<成绩单>

<学生>

<姓名>张三</姓名>

<成绩>优秀</成绩>

</学生>

<学生>

<姓名>李四</姓名>

<成绩> 良好</成绩>

</学生>

</成绩单>

习题四

1.答 一个返回子孙节点 而另一个只返回子节点  1 getElementsByTagName(String name) :返回一个NodeList对象该对象由当前节点的Element类型子孙节点组成这些子孙节点的名字由参数name指定

2 getChildNodes() :节点调用该方法返回一个由当前节点的所有子节点

组成的NodeList对象。

2答分别是DocumentType类型和Element类型。

3

JAXPXit i5. javaimport 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(newFile("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<size;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) ;

}

}mathAver=sumAl lMath/mathNumber;physicsAver=sumAllPhysics/physicsNumber;

}

}

习题五 DOM解析器的核心是在内存中建立和XML文件相对应的树形结构数据如果XML文件较大相应的Document对象就要占用较多的内存空间 SAX解析器不在内存中建立和XML文件相对应的树形结构数据和DOM解析器相比 SAX解析器占有的内存少。

1答不报告。 这个答案不知道

2答 uri和localName的取值是空字符组成的串即ur i="" localName=""参数qName取值是标记名称 atts是标记的所有属性的集合。

3答 当忽略标记之间形成的空白区域时。

4.答 Xiti7. javaimport org.w3c.dom.*;import javax.xml.parsers.*;import java. io.*;public class Xiti7

{public static void main(String args[])

{

OutTotal outWeight=new OutTotal () ;try {

DocumentBuilderFactoryfactory=DocumentBuilderFactory. newInstance() ;

DocumentBuilder builder= factory.newDocumentBuilder() ;

Document document= builder.parse(new

File("a.xml") ) ;

Element root=document.getDocumentElement() ;

NodeList nodeList=root.getChildNodes() ;outWeight.output(nodeList) ;

System.out.println("总重量 "+outWeight. sum) ;

}catch(Exception e) {

System.out.println(e) ;

}

}

}class OutTotal

{double sum;

精品文档public void output(NodeList nodeList)

{int size=nodeList.getLength() ;for(int k=0;k<size;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("重量") )sum=sum+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) ;

}

}

}

}

习题六1答 Element类型节点对应XML中的标记。

2答

1按顺序对应着第一个名字是“教室”的标记中的第一个名字是“桌子”标记的“价格”标记。

(2)对应着具有属性number属性值是02、名字为“桌子”的标记而且这些桌子标记有子标记“价格”而且价格包含的文本是数字且值大于等于360。

3对应“教室”的属性。

4 number属性所在的“教室”节点。

5 109

6 396 267

7对应着“教室”标记具教室标记有孙标记“价格”且“价格”标记含有的数字文本的值大于390 即是第2个“教室”标记。

8对应着价格标记且“价格”标记含有的数字文本的值大于396。

3答

1 【结果1】 : A1001定单的总额

2 【结果2】 : 40.0

3 【结果3】 : 4

4 【结果4】 : 100

精品文档

4答

Xiti8. javaimport javax.xml.xpath.*;import org.xml. sax.*;import org.w3c.dom.*;public class Xiti8{public static void main(String args[]) {try{ XPathFactory xPathFactory=XPathFactory.newInstance() ;XPath xPath=xPathFactory.newXPath() ;

InputSource source=new InputSource("Xiti8.xml") ;String countPath="count(/货品列表/货品/重量)";

String sumPath="sum(/货品列表/货品/重量)";

Doublesum=(Double)xPath. evaluate(sumPath, source,XPathConstants.NUMBER) ;double total=sum.doubleValue() ;

System.out.println("总重量:"+total) ;

}catch(Exception exp) {

System.out.println(exp) ;

}

}

}

5答

Student.xml

<?xml version="1.0" encoding="UTF-8" ?>

<学生列表>

<学生学号='72349876' >

<姓名>张三</姓名>

<性别>男</性别>

<年龄> 29 </年龄>

</学生>

<学生学号=' 12345678' >

<姓名>李张林</姓名>

<性别>男</性别>

<年龄> 18 </年龄>

</学生>

<学生学号='000' >

<姓名>张李号</姓名>

<性别>女</性别>

<年龄> 25 </年龄>

</学生>

</学生列表>

精品文档

Aplication. javapublic class Application{public static void main(String args[]) {new StudentConditionWindow() ;

}

}

StudentConditionWindow. javaimport java.awt.*;import javax. swing.*;public class StudentConditionWindow extends JFrame {

JTextField inputName, inputNumber;

JTextArea showResult;

JButton button;

Box baseBox ,boxV1,boxV2;

StudentConditionWindow() {inputName=new JTextField(10) ;inputNumber=new JTextField(10) ;boxV1=Box.createVerticalBox() ;boxV1.add(new Label ("姓名中包含:") ) ;boxV1.add(new Label ("学号中包含") ) ;boxV2=Box.createVerticalBox() ;boxV2.add(inputName) ;boxV2.add(inputNumber) ;baseBox=Box.createHorizontalBox() ;baseBox.add(boxV1) ;baseBox.add(boxV2) ;

JPanel west=new JPanel () ;west.add(baseBox) ;button=new JButton("确定") ;west.add(button) ;add(west,BorderLayout.WEST) ;showResult=new JTextArea(10, 10) ;showResult. setFont(new Font("宋体",Font.PLAIN, 12) ) ;add(new JScrollPane(showResult) ,BorderLayout.CENTER) ;

FindStudentByXPath findStudent; //负责使用XPath查询学生的对象findStudent=new

FindStudentByXPath(inputName, inputNumber, showResult, "student.xml") ;button.addActionListener(findStudent) ;

精品文档setBounds(10, 10,900,300) ;setVisible(true) ;setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

}

}

FindStudentByXPath. javaimport javax.xml.xpath.*;import org.w3c.dom.*;import javax. swing.*;import java.awt.event.*;import org.xml. sax.*;public class FindStudentByXPath implements ActionListener {

XPathFactory xPathFactory;

XPath xPath;

String positionPath;

InputSource source;

JTextField inputName, inputNumber;

JTextArea showResult;

FindStudentByXPath(JTextField inputName,JTextFieldinputNumber,JTextArea showResult,String fileName) {this. inputName=inputName;thi s. inputNumber=inputNumber;this. showResult=showResult;xPathFactory=XPathFactory.newInstance() ;xPath=xPathFactory.newXPath() ;source=new InputSource(fileName) ;this.positionPath=positionPath;

}public void actionPerformed(ActionEvent e) {showResult. setText(null) ;

String studentName=inputName.getText() . trim() ;

String studentNumber=inputNumber.getText() . trim() ;

String predicates="[contains(姓名, ' "+studentName+"' ) and"+

"contains(@ 学号, ' "+s tudentNumber+"' ) ]";

String path="/学生列表/学生"+predicates+"/*";//XPath路径表达式try{

NodeList nodelist=

(NodeList)xPath.evaluate(path, source,XPathConstants.NODESET) ;int size=nodelist.getLength() ;

精品文档for(int k=0;k<size;k++) {

Node node=nodelist. item(k) ;

String name=node.getNodeName() ;showResult.append(" "+name+":") ;

String content=node.getTextContent() ;showResult.append(content+"\n") ;if(name. startsWith("年龄") )showResult.append("--------------------------\n") ;

}

}catch(Exception exp) {showResult. setText(null) ;showResult.append("异常:"+exp) ;

}

}

}

习题七

1答参考例子2即可完成。

2答参见例子3即可完成。

习题八1答使用操作指令

<?xml-stylesheet href ="样式表的URI" type= "text/css" ?>

2答student

{ display:block;font-size: 18pt; color:red;

}

3答假设XML文件中有三个标记的名称都是“name” “ID”属性分别是a001,a002,a003。 CSS文件如下name a001

{ display:block;border-style:double;width=260;height=120

}name a002

{ display:block;border-style:dotted;width=150;height=60 ;font-size: 10pt;

CloudCone(20美元/年)大硬盘VPS云服务器,KVM虚拟架构,1核心1G内存1Gbps带宽

近日CloudCone商家对旗下的大硬盘VPS云服务器进行了少量库存补货,也是悄悄推送了一批便宜VPS云服务器产品,此前较受欢迎的特价20美元/年、1核心1G内存1Gbps带宽的VPS云服务器也有少量库存,有需要美国便宜大硬盘VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务...

HostYun(22元/月)全场88折优惠香港原生IP大带宽

在之前的一些文章中有提到HostYun商家的信息,这个商家源头是比较老的,这两年有更换新的品牌域名。在陆续的有新增机房,价格上还是走的低价格路线,所以平时的折扣力度已经是比较低的。在前面我也有介绍到提供九折优惠,这个品牌商家就是走的低价量大为主。中秋节即将到,商家也有推出稍微更低的88折。全场88折优惠码:moon88这里,整理部分HostYun商家的套餐。所有的价格目前都是原价,我们需要用折扣码...

hostio荷兰10Gbps带宽,10Gbps带宽,€5/月,最低配2G内存+2核+5T流量

成立于2006年的荷兰Access2.IT Group B.V.(可查:VAT: NL853006404B01,CoC: 58365400) 一直运作着主机周边的业务,当前正在对荷兰的高性能AMD平台的VPS进行5折优惠,所有VPS直接砍一半。自有AS208258,vps母鸡配置为Supermicro 1024US-TRT 1U,2*AMD Epyc 7452(64核128线程),16条32G D...

xml教程为你推荐
美国互联网瘫痪美国是否有能力关闭全球互联网以及中国互联网,还有美国有没能力关闭某个网站,比如淘宝,天涯,网易等杨紫别祝我生日快乐祝自己生日快乐内涵丰富的话微信回应封杀钉钉微信发过来的钉钉链接打不开?www.228gg.comwww.a8tb.com这个网站该如何改善qq530.com求教:如何下载http://www.qq530.com/ 上的音乐广告法请问违反了广告法,罚款的标准是什么www.javlibrary.com跪求一个JAVHD.com的帐号铂金血痕求Hp卢修斯,v大,盖特勒重生文,cp不要斯内普和邓不利多,名子和简介就行.最好是晋江的.谢谢.百度关键字百度推广多少关键词合适ww.43994399??????????
厦门域名注册 北京域名空间 linuxapache虚拟主机 inmotionhosting blackfriday mediafire下载工具 gomezpeer 日志分析软件 网页背景图片 java虚拟主机 129邮箱 域名和空间 七夕快乐英语 上海电信测速网站 web应用服务器 smtp服务器地址 杭州电信宽带优惠 阵亡将士纪念日 七牛云存储 杭州电信宽带 更多