XML编程与应用教程第二版上机答案_第1页
XML编程与应用教程第二版上机答案_第2页
XML编程与应用教程第二版上机答案_第3页
XML编程与应用教程第二版上机答案_第4页
XML编程与应用教程第二版上机答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机题

1、

<?xmlversion=,'1.0Mencoding=,,gb2312"?>

<book>

<title>XML指南v/title>

<chapter>XML入门简介

<para>什么是HTML</para>

<para>什么是XML</para>

</chapter>

<chapter>XML语法

<para>XML元素必须有结束标签</para>

<para>XML元素必须正确的嵌套</para>

</chapter>

</book>

2、

<?xmlversion="1.0"encoding="gb2312U?>

<employees>

<employee>

<id>l</id>

<name>张三</name>

<age>32</age>

vsex>男</sex>

〈address〉上海〈/address〉

</employee>

<employee>

<id>2</id>

<name>李四</name>

<age>22</age>

vsex>男</sex>

〈address〉北京〈/address〉

</employee>

</employees>

3、

<?xmlversion="1.0nencoding=Mgb2312U?>

<students>

<student>

<number>1</number>

<name>tom</name>

<score>100</score>

</student>

<student>

<number>2</number>

<name>mary</name>

<score>98</score>

</student>

</students>

第三章

上机题

1、

<?xmlversion二"1.0"encoding="GB2312”?>

<!ELEMENT学生名册(学生+)>

^ELEMENT学生(姓名,性别,年龄)〉

々ELEMENT姓名(#PCDATA)>

v!ELEMENT性别(#PCDATA)>

<!ELEMENT年龄(#PCDATA)>

VATTLIST学生学号ID#REQUIRED>

2、

<?xmlversion=H1.0nencoding="UTF-8”?>

<NEWSPAPER>

<ARTICLEAUTHOR=''&NEWSPAPER;"EDITOR="&PUBLISHER;''DATE="2009-6-1"EDITION

=,,©RIGHT;,,>

<HEADLINE>EnvironmentProtection</HEADLINE>

<BYLINE>Materialwaste</BYLINE>

<LEAD>&PUBLISHER;</LEAD>

<BODY>

itmeansthewasteofsubstanceorthingsfromwhichsomethingelsecanbemade.Forexample,people

throwawaytheusedmetalproductsandbuyanewone,sotheoldmetalwasteaccumulates.Atlast,they

becomewaste.Forexample,whenpeoplefinishreadingnewspaper,thepaperwillbecomewaste.Whenthe

glassisbroken,italsobecomeswaste.Nobodywantstouseabrokenwindowordrinkwithabrokenglassor

wearapairofbrokenglasses.Onceitisbroken,itbecomeswaste.Therateofusingplasticsisincreasingday

byday.Peopleuseplasticbagsbecausetheyareconvenient.Whentheygethome,theythrowtheplasticsway,

payingnoattentiontotheenvironment.Themoreconvenienceplasticsbringstous,themoreplasticwasteis

produced.Thisiscalled“whitepolIution^^asmostplasticsarewhite.Someofourproductsweuseeveryday

aremadeofrubber,justlikethetyresandthebottompartofourshoes.It'struethatrubberplaysanimportant

roleinourlife.However,italsobringsussometroublewhenithasbeenusedforalongtimeandbecomesold.

Theoldtyresbecomewastebecauseitcan'tbreakdownbynature.Thisisreallyabigproblem.

</BODY>

<NOTES>

Protectingtheenvironmentisnotoneperson'sduty;itdependsonallofus.Whatcanwedo?Maybea

dozen..

Inaword,usewhatcanreuseasmuchaspossible.Remember,environmentprotectionisnotone'sduty!

</NOTES>

</ARTICLE>

</NEWSPAPER>

3、

<?xmlversion="1.0Hencoding=MUTF-8,'?>

<!DOCTYPENEWSPAPER[

<!ELEMENTNEWSPAPER(ARTICLE+)>

<!ELEMENTARTICLE(HEADLINE,BYLINE,LEAD,BODY,NOTES)>

<!ELEMENTHEADLINE(#PCDATA)>

<!ELEMENTBYLINE(#PCDATA)>

<!ELEMENTLEAD(#PCDATA)>

<!ELEMENTBODY(#PCDATA)>

<!ELEMENTNOTES(#PCDATA)>

<!ATTLISTARTICLEAUTHORCDATA#REQUIRED>

<!ATTLISTARTICLEEDITORCDATA#IMPLIED>

<!ATTLISTARTICLEDATECDATA#IMPLIED>

<!ATTLISTARTICLEEDITIONCDATA#IMPLIED>

<?ENTITYNEWSPAPERMVervetLogicTimes”>

<!ENTITYPUBLISHERnVervetLogicPress”>

<!ENTITYCOPYRIGHT'•Copyright1998VervetLogicPress”,

]>

<NEWSPAPER>

<ARTICLEAUTHOR=''&NEWSPAPER;''EDITOR="&PUBLISHER;"DATE=”2009・6・1"EDITION

二"©RIGHT;”>

<HEADLINE>EnvironmentProtection</HEADLINE>

<BYLINE>Materialwaste</BYLINE>

<LEAD>&PUBLISHER;</LEAD>

<BODY>

itmeansthewasteofsubstanceorthingsfromwhichsomethingelsecanbemade.Forexample,people

throwawaytheusedmetalproductsandbuyanewone,sotheoldmetalwasteaccumulates.Atlast,they

becomewaste.Forexample,whenpeoplefinishreadingnewspaper,thepaperwillbecomewaste.Whenthe

glassisbroken,italsobecomeswaste.Nobodywantstouseabrokenwindowordrinkwithabrokenglassor

wearapairofbrokenglasses.Onceitisbroken,itbecomeswaste.Therateofusingplasticsisincreasingday

byday.Peopleuseplasticbagsbecausetheyareconvenient.Whentheygethome,theythrowtheplasticsway,

payingnoattentiontotheenvironment.Themoreconvenienceplasticsbringstous,themoreplasticwasteis

produced.Thisiscalled“whitepollution^^asmostplasticsarewhite.Someofourproductsweuseeveryday

aremadeofrubber,justlikethetyresandthebottompartofourshoes.Ifstruethatrubberplaysanimportant

roleinourlife.However,italsobringsussometroublewhenithasbeenusedforalongtimeandbecomesold.

Theoldtyresbecomewastebecauseitcan'tbreakdownbynature.Thisisreallyabigproblem.

</BODY>

<NOTES>

Protectingtheenvironmentisnotoneperson'sduty;itdependsonallofus.Whatcanwedo?Maybea

dozen..

Inaword,usewhatcanreuseasmuchaspossible.Remember,environmentprotectionisnotone'sduty!

</NOTES>

</ARTICLE>

</NEWSPAPER>

第四章

上机题

1、

<?xmlversion=n1.0nencoding二"UTF-8”?>

<xs:schemaxmlns:xs=',/2001/XMLScheman>

<xs:elementname=HOrdersutype=Hord'7>

<xs:complexTypename="ord">

<xs:elementname="Order”〉

<xs:complexType>

<xs:sequence>

<xs:elementname=nnamentype=uxs:string"/>

<xs:elementname=Mnumber"type="numgs'7>

<xs:elementname="cityntype=nxs:string"/>

<xs:elementname="zip"type="zipgs"/>

</xs:sequence>

<xs:attributename="orderID"type="idgs"use=nrequired"/>

<xs:attributename="orderDate”type="xs:date"use="optional”/>

</xs:complexType>

</xs:element>

</xs:complexType>

<xs:simpleTypename="zipgs”>

<xs:restrictionbase=uxs:string”>

<xs:lengthvalue="6”/>

<xs:patternvakie="\d{6}'7>

</xs:restriction>

</xs:simpleType>

<xs:simpleTypename="idgs”>

<xs:restrictionbase=4€xs:string”>

<xs:lengthvalue_44v/>

<xs:patternvalue=44[A]{1}\d{3}7>

</xs:restriction>

</xs:simpleType>

<xs:simpleTypename=ttnumgs,,>

<xs:restrictionbase="xs:positivelnteger”>

<xs:maxlnclusivevalue=t499,7>

<xs:minlnclusicevalue="l'7>

</xs:restriction>

</xs:simpleType>

</xs:schema>

2、

<?xmlversion="1.0"?>

<xsd:schemaxmlns:xsd="http:〃/2001/XMLSchema”>

<xsd:attributename=,,PRODID"type=,'pid,7>

<xsd:simpleTypename=Mpidu>

<xsd:restrictionbase=,'xsd:stringn>

<xsd:patternvalue=n[P]{1}\d{3}n/>

</xsd:restriction>

</xsd:simpleType>

<xsd:elementname="PRODUCTDATA”type二"prdata”/>

<xsd:complexTypename=nprdatan>

<xsd:sequence>

<xsd:elementname=,'PRODUCTn>

<xsd:complexType>

<xsd:sequence>

<xsd:elementname="PRODUCTNAME"type="xsd:string"/〉

<xsd:elementname=uDESCRIPTIONntype=nxsd:string'7>

<xsd:elementname=uPRICEntype=,'xsd:positivelnteger,7>

<xsd:elementname=',QUANTITYMtype="xsd:nonNegativeInteger7>

</xsd:sequence>

<xsd:attributeref=nPRODIDuuse=nrequiredM>

</xsd:attribute>

<xsd:attributename=HCATEGORYntype=ncatMuse=Mrequired'7>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:si9mpleTypename=ncat">

<xsd:restrictionbase=,'xsd:stringn>

<xsd:enumerationvalue="lbyM/>

<xsd:enumerationvalue="Book"/〉

</xsd:restriction>

</xsd:simpleType>

</xsd:schema>

3、

<?xmlversion=n1.0nencoding二"UTF-8”?>

<xs:schemaxmlns:xs二"/2001/XMLSchema">

<xs:elementname=nPURCHASEORDER'*type=Mpur'7>

<xs:complexTypename=upurn>

<xs:elementname="Order',>

<xs:complexType>

<xs:sequence>

<xs:elementname="DATE"type="xs:date'7>

<xs:elementname="PRODUCTNAME"type="xs:string''/>

<xs:elementname=,'SUPPLIERNAME"type=°xs:string"/>

<xs:elementname=nADDRESSHtype=uxs:string17>

<xs:elementname=nQUANTITY"type="xs:positivelnteger”/>

<xs:elementname="PRICEPERQTYtype="xs:positivelnteger'7>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:attributename=uORDERIDutype=nxs:string”use二"required"/>

<xs:attributename=nPRODID"type="xs:stringnuse="optional"/>

</xs:complexType>

</xs:schema>

第五章

上机题

1、

1)、

<?xmlversion=n1.0'*encoding="gb2312"?>

<xsl:stylesheetversion="1.0°xmlns:xsl="http:〃/1999/XSL/Transform”>

<xsl:templatematch=,7M>

<html>

<head>

<title>iT单信息〈/title〉

</head>

<body>

<h2align="center”〉订单</h2>

<tableborder="r'cellpadding=MO"align=ucenter">

<tr>vth>名称v/th><th>数量城市</th>vth>邮编v/th></tr>

<xsl:for-eachselect='7Orders/Order">

<tr>

<td><xsl:value-ofselect=,'name,7></td>

<td><xsl:value-ofselect=unumber'7></td>

<td><xsl:value-ofselect=ucity'7></td>

<td><xsl:value-ofselect=“zip

<//tr>

</xsl:foreach>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

2)、

<?xmlversion=n1.0nencoding=,,gb2312,'?>

<xsl:stylesheetversion="1.0°xmlns:xsl=n/1999/XSL/Transform">

<xsl:templatematch=,7">

<html>

<head>

订单信息〈/title〉

</head>

<body>

<h2align="center”〉订单v/h2>

<tableborder=u1ncellpadding=MOnalign=ucenter,'>

名称v/th><th>数量</th><th>城市</th><th>邮编</th></tr>

<xsl:iftest=,7/Order[@orderID=*A002']">

<tr>

<td><xsl:value-ofselect=uname,7></td>

<td><xsl:value-ofselect="number'7></td>

<td><xsl:value-ofselect二"city"/>v/td>

<td><xsl:value-ofselect="zip'7></td>

</tr>

</xsl:if>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

3)、

<?xmlversion=,,1.0Mencoding=,,gb2312,'?>

<xsl:stylesheetversion=M1.0°xmlns:xsl="hltp:〃/1999/XSL/Transform">

<xsl:templatematch=Vn>

<html>

<head>

订单信息

</head>

<body>

<h2align="center”〉订单</h2>

<tableborder="1ucellpadding=HO"align="center,'>

名称v/th>vth>数邕</th><th>城市邮编</th>v/tr>

<xsl:iftest=ncity[尸'北京T'>

<tr>

<td><xsl:value-ofselect=uname,7x/td>

<td><xsl:value-ofselect=unumber"/></td>

<td><xsl:value-ofselect=ucityn/x/td>

<td><xsl:value-ofselect="zip"/></td>

</tr>

</xsl:if>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

PRODUCTNAME

{font-family:Arial;

fbnt-size:20pt;

fbnt-weight:bold;

color:red;

display:block;

padding-top:6pt;

padding-bottom:6pt

)

PRICE,DESCRIPTION,QUANTITY

{font-family:Arial;

font-size:!Opt;

color:green;

display:block;

padding-top:2pt;

padding-bottom:2pt

<?xmlversion=,,1.0,,?>

<xsl:stylesheetxmlns:xsl="/l999/XSL/Transform"version=*'1.0n>

<xsl:templatematch=,7">

<xsl:for-eachselect=nPRODUCTDATA/PRODUCTH>

<xsl:choose>

<xskwhentest二"PRODUCTNAMEn>

<fontcolor=",red">

产品名:<xsl:value-ofselect="PRODUCTNAME"/><BR/>

</font>

</xsl:when>

<xsl:otherwise>

<fontcolor=ngreen">

描述:<xsl:value-ofselect="DESCRIPTION"/><BR/>

价格:<xsl:value-ofselect="PRICE"/><BR/>

现有量:<xsl:value-ofselect="QUANTITY"/><BR/><BR/>

</font>

</xsl:otherwise>

</xsl:choose>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

第六章

上机题

打开IE浏览器,并在地址栏中输入URL查询字符串:

http://localhost/XMLTest?sql=select+:l:from+student+for+xml+RAW&root=root

http://localhost/XMLTest?sql=select+*from+student+for+xml+Auto&root=student

2、将数据“bin”、“female”、“30”以XML元素的形式插入到本章的数据库school的student数据表

中。注意,分别以元素和属性的形式进行实现。

DECLARE@docvarchar(1000)

DECLARE@idocint

SET@doc=f<ROOT>

<student>

<id>5</id>

<name>bin</name>

<sex>female</sex>

<age>30</age>

</student>

v/ROOT,

execsp_xml_preparedocument@idocoutput,@doc

select*fromopenxml(@idoc,7ROOT/student,,2)

with(idint,namevarchar(40),sexvarchar(20),

ageint)

insertstudent

select*fromopenxml(@idoc,,/ROOT/student,,2)

withstudent

execsp_xml_removedocument@idoc

3、将数据"bin"、"female"、"30"以XML属性的形式插入到本章的数据库school的student数据表

中。

USEschool

DECLARE@docvarchar(1000)

DECLARE@idocint

SET@doc=,<ROOT>

<studentid="6"name="bin”

sex="femalenage=n30n>

</student>

</ROOT>,

execsp_xml_preparedocument@idocoutput,@doc

select*fromopenxml(@idoc,VROOT/student',1)

with(idint,namevarchar(40),sexvarchar(20),

ageint)

insertstudent

select*fromopenxml(@idoc,VROOT/student')

withstudent

execsp_xml_removedocument@idoc

第七章

上机题

1、

<GOTO

xlink:type="simple”

xlink:href="http:〃”

xlink:title="Address”

xlink:show=''replace”

xlink:actuate="onRequest”>

thisisaslinkedelement

</GOTO>

2、

<GOTO

xlink:type="simple”

xlink:href=''http:〃”

xlink:title="Address”

xlink:show="new"

xlinkiactuate^^nRequesO

thisisaslinkedelement

</GOTO>

3、

<?xmlversion=n1.0"encoding="gb2312n?>

<library>

<bookname="C#技术内幕”id廿1101”>

<coverurl="http:〃/book/cover01Jpg”/>

〈press〉机械工业出版社</press>

<description>

这是一本C#编程语言的指南和参考书。C#是一种崭新的面向对象

的编程语言。它强调以组件为基础的软件开发方法。

</description>

</book>

<bookname="时间简史“id二“5105”>

<coverurl="http:〃/book/cover51.jpg"/>

<press>湖南科学技术出版社</press>

<description>

《时间简史》以最通俗的语言,对一些最古老的问题做了阐述,

向人们介绍了什么是宇宙论,以及宇宙论最新的发展状况。

</description>

</book>

<bookname="ASP.NET技术内幕“id="l102”>

<coverurl="http:〃/book/cover01.jpg"/>

<press>机械工业出版社</press>

<description>

这是一本ASP.NET编程语言的指南和参考书。

</description>

</book>

<bookname="Java导论“id=“1105”>

<coverurl="http:〃/book/cover51.jpg"/>

<press>湖南科学技术出版社</press>

<description>

这是一本Java编程语言的指南和参考书。

</description>

</book>

<bookname="JavaME大全“id="l105”>

<coverurl=M/book/cover51.jpg"/>

vpress>湖南科学技术出版社〈/press〉

<description>

这是一本JavaME编程语言的指南和参考书。

</description>

</book>

</library>

<?xmlversion=u1.0H?>

<browsexmlns:xlink=u/1999/xlink">

<bookxlink:type=Msimple"

xlink:href=',http://l27.0.0.l/books.xm^xpointe^idC1!102,))">

<descriptionxlink:type=,'simple"

xlink:href="http:〃/book/cover01.jpg”>

学习ASP.NET的书籍

</description>

</book>

</browse>

第八章

填空题:

1、文档对象模型2、DOM解析器3、节点4、DOMDocument5、IXMLDOMNode

选择题:

1、ABCD2、B3、D4、C5、A

简答题:

1、答:最常见的节点类型有:

(1)、元素:元素是XML的基本构件。元素可以有其它元素、文本节点或两者兼有来作为

其子节点。元素节点还是可以有属性的唯一类型的节点。

(2)、属性:属性节点包含关于元素节点的信息,但实际上,不认为它是元素的子节点

(3)、文本:文本节点是:文本。它可以包含许多信息或仅仅是空白。

(4)、文档(根节点):文档节点是整个文档中所有其它节点的父节点。

2、答:

使用XMLD0M,可以让我们遍历、读取和操纵XML文档的结构和内容,其主要对象和

方法有:

(1)、DOMDocument对象:描述全部文档映射表,它包括文档所有信息。对开发人员来说,

最重要的编程对象是DOMDocumentoDOMDocument对象通过暴露的属性和方法来允许

浏览、查询和修改XML文档的内容和结构

(2)、IXMLDOMNode对象:描述文档里的节点,此节点可以是元素、属性、处理指令、文

本或其他存储在XML文档里的信息。

(3)>IXMLDOMNodeList对象:描述节点对象的集合,可以使用该对象遍历这个集合,可

以用数值访问。

(4)、IXMLDOMParseError对象:用来验证XML文档对于DTD、XSD的正确性。

第九章

填空题:

1>DOMSAX2、Document3、startDocument4、XMLOutPutter5、Element

选择题:

1、B2、A3、A4、B5、D

上机题

1、

importjavax.xml.parsers.*;

importorg.w3c.dom.*;

publicclassdom{

publicstaticvoidmain(Stringargs[]){

try{

DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();

DocumentBuilderbuilder=factory.newDocumentBuilder();

Documentdoc=builder.parse("order.xmr,);

NodeListnl=doc.getElementsByTagName(nshipTon);

for(inti=O;i<nl.getLength();i++){

Elementnode=(Element)nl.item(i);

System.out.print(nname:");

System.out.println

(node.getElementsByTagName(nname").item(0).getFirstChild().getNodeValue());

System.out.print(nstreet:");

System.out.printin

(node.getElementsByTagName(nstreetn).item(0).getFirstChild().getNodeValue());

System.out.print(ncity:");

System.out.println

(node.getElementsByTagName(,,city,,).item(0).getFirstChild().getNodeValue());

System.out.print(nstate:");

System.out.println

(node.getElementsByTagName(nstate,,).item(0).getFirstChild().getNodeValue());

System.out.print(nzip:");

System.out.println

(node.getElementsByTagName(nzipn).item(0).getFirstChild().getNodeValue());

System.out.printlnO;

}

NodeListn2=doc.getElementsByTagName(ubillTon);

for(inti=0;i<n2.getLength();i++){

Elementnode=(Element)n2.item(i);

System.out.printC^ame:");

System.out.println

(node.getElementsByTagName(,,namen).item(0).getFirstChild().getNodeValue());

System.out.print(Mstreet:");

System.out.println

(node.getElementsByTagName(nstreetn).item(0).getFirstChild().getNodeValue());

System.out.print(ncity:”);

System.out.println

(node.getElementsByTagName(,,city,,).item(0).getFirstChild().getNodeValue());

System.out.print(nstate:");

System.out.println

(node.getElementsByTagName(,,staten).item(0).getFirstChild().getNodeValue());

System.out.print(nzip:");

System.out.println

(node.getElementsByTagName(nzipn).item(0).getFirstChild().getNodeValue());

System.out.println();

NodeListn3=doc.getElementsByTagName(nitemn);

for(inti=0;i<n3.getLength();i++){

Elementnode=(Element)n3.item(i);

System.out.printC'productName:");

System.out.println

(node.getElementsByTagNanieC^productName'^.item^.getFirstChildO.getNodeValueO);

System.out.print(nquantity:");

System.out.println

(node.getElementsByTagName(,'quantity',).item(0).getFirstChild().getNodeValue());

System.out.print(nUSPrice:”);

System.out.println

(node.getElementsByTagName(,,USPrice,,).item(0).getFirstChild().getNodeValue());

System.out.print(Hcomment:");

System.out.println

(node.getElementsByTagName(ncommentn).item(0).getFirstChild().getNodeValue());

System.out.printlnO;

)

}catch(Exceptione){

e.printStackTrace();

(2)

importjavax.xml.parsers.*;

importorg.w3c.dom.*;

importjava.io.*;

importorg.apache.crimson.tree.*;

publicclassInsertElement{

publicstaticvoidmain(Stringargs[]){

Elementitems=null;

Elementitem=null;

ElementproductName=null;

Elementquantity=null;

ElementUSPrice=null;

ElementshipDate=null;

try(

DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();

DocumentBuilderbuilder=factory.newDocumentBuilder();

Documentdoc=bui1der.parse(norder.xmln);

NodeListnl=doc.getElementsByTagName(nitemsn);

items=(Element)nl.item(O);

item=doc.createElement(nitemn);

item.setAttribute(,,partNumn,n926-AAH);

productName=doc.createElement(nproductName");

productName.appendChild(doc.createTextNode(MBabyMonitor"));

item.appendChild(productName);

quantity=doc.createElementC^quantity");

quantity.appendChild(doc.createTextNode(n1H));

item.appendChild(quantity);

USPrice=doc.createElement(nUSPricen);

USPrice.appendChild(doc.createTextNode(n39.98"));

item.appendChild(USPrice);

shipDate=doc.createElement(nshipDateH);

shipDate.appendChild(doc.createTextNode(n1999-05-21"));

item.appendChild(shipDate);

items.appendChild(item);

((XmlDocument)doc).write(newFileOutputStream(,,testl.xmr,));

}catch(Exceptione){

e.printStackTrace();

2、

importjava.io.IOException;

importjavax.xmLparsers.*;

importorg.xml.sax.Attributes;

importorg.xml.sax.SAXException;

importorg.xml.sax.helpers.DefaultHandler;

publicclassSAXtoMyxml{

publicstaticvoidmain(String[]args)throwsParserConfigurationException,

SAXException,lOException{

//通过工厂获得SAX解析器

SAXParserFactorysf=SAXParserFactory.newInstance();

SAXParsersax=sf.newSAXParser();

//解析器

//通过解析器解析xml文件

sax.parse("order.xml",newSAXHander。);〃使用自定义的监听器

)

)

//自定义sax解析监听器

classSAXHanderextendsDefaultHandler{

publicvoidstartDocument()throwsSAXException{

System.out.println(“文档开始”);

)

publicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattributes)

throwsSAXException{

System.out.println("元素开始n+qName);

}

publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{

Stringtext=newString(ch,start,length);

〃去掉xml文件中的空格节点

if(text.trim().equals('H,)){

return;

System.out.printlnC文本内容”+text);

}

publicvoidendElement(Stringuri,StringlocalName,StringqName)throwsSAXException{

System.out.printin("元素结束n+qName);

)

publicvoidendDocument()throwsSAXException{

System.out.printin(“文档会束”);

3、

importorg.jdom.*;

importorg.jdom.output.*;

importjava.io.*;

publicclassWriteXML{

publicvoidBuildXML()throwsException{

Elementroot,student,number,name,age;

root=newElement(nstudent-infbn);

student=newElement(,,studentn);

numbei-newElement("number");

name=newElement("namen);

age=newElement。'age");

Documentdoc=newDocument(root);

number.setText(,,00r,);

name.setText(nlnman");

age.setText(n24n);

student.addContent(number);

student.addContent(name);

student.addContent(age);

root.addContent(student);

Formatfbrmat=Format.getCompactFormat();

format.setEncoding("gb2312");

format.setlndent(n”);

XMLOutputterXMLOut=newXMLOutputter(format);

XMLOut.output(doc,newFileOutputStreamC^studentinfo.xmr1));

)

publicstaticvoidmain(Stringnargs)throwsException{

WriteXMLw=newWriteXML();

System.out.printin("正在生成XML文档.....”);

w.BuildXML();

System.out.println("完成)

)

)

第十章

填空题:

1>流模式DOM2、XmlReader3、XmlDocument4、WriteXml5、XmlNode

选择题:

1、A2、D3、A4、A5、A

上机题

1、假设XML文档的文件名为order.xml,位于C:\目录下。

1)、

第一步:在.NET集成开发环境中创建一个名为ReadXmlDemo的控制台应用程序;

第二步:导入命名空间

usingSystem.Xml;

第三步:读取数据

完整的实例代码如下所示:

usingSystem;

usingSystem.Xml;

namespaceReadXmlDemo2

(

classClassi

(

[STAThread]

staticvoidMain(string[]args)

nt“-

vs0-仇

ntp1«.

ntdc.0;

ntcc.-0;

ntac0;

ne.0;

tt0;

n

ten-0;

nx

tc

XmlTextReadertextReader=newXmlTextReader("C:\\order.xmln);

while(textReader.Read())

{

XmlNodeTypenType=textReader.NodeType;

if(nType==XmlNodeType.XmlDeclaration)

Console.WriteLine(nDeclaration:n+textReader.Name.ToStringO);

xd=xd+1;

)

if(nType==XmlNodeType.Comment)

Console.WriteLine(nComment:u+textReader.Name.ToStringO);

cc=co+1;

)

if(nType==XmlNodeType.Attribute)

Console.WriteLine(nAttribute:0+textReader.Name.ToStringO);

ac=ac+1;

if(nType==XmlNodeType.Element)

(

Console.WriteLine(',Element:n+textReader.Name.ToStringO);

el=el+1;

)

if(nType==XmlNodeType.Entity)

{^

Console.WriteLine(nEntity:n+textReader.Name.ToStringO);

et=et+1;

if(nType==XmlNodeType.Processinglnstruction)

('

Console.WriteLine("ProcessInstruction:"+textReader.Name.ToStringO);

pi=pi+1;

)

if(nType==XmlNodeType.DocumentType)

(

Console.WriteLine(,,DocumentType:"+textReader.Name.ToStringO);

de=de+1;

if(nType==XmlNodeType.Whitespace)

Console.WriteLine(HWhiteSpace:"+textReader.Name.ToStringO);

ws=ws+1;

Console.WriteLine(nTotalComments:°+cc.ToStringO);

Console.WriteLineC^TotalAttributes:"+ac.ToStringO);

Console.WriteLine(HTotalElements:'1+el.ToStringO);

Console.WriteLine(nTotalEntity:',+et.ToStringO);

Console.WriteLine(HTotalProcessInstructions:"+pi.ToStringO);

Console.WriteLine(nTotalDeclaration:n+xd.ToStringO);

Console.WriteLine(nTotalDocumentType:n+dc.ToStringQ);

Console.WriteLine(HTotalWhiteSpaces:n+ws.ToStringO);

2)、

首先将要用到的文件order.xml放入项目所在文件夹目录下的bin\Debug目录下;接着声明

窗体级的数据集对象,代码如下:

DataSetds=newDataSet();

然后,编写各控件相关的事件触发程序代码:

显示“读取xml文档”的按钮的单击事件触发程序代码如下:

privatevoidbtnReadXML_Click(objectsender,System.EventArgse)

ds.ReadXml(',order.xmr,);

dataGridl.DataSource=ds.Tables[O];

显示“将数据集中的架构写入文件”的按钮的单击事件触发程序代码如下:

privatevoidbtnWriteXmlSchema_Click(objectsender,System.EventArgse)

(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论