XML系列教程之一:XML教程

loading 分享 2026-8-27 下载文档

XML系列教程之一——XML教程

此文本也会被解析 解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 元素包含着另外的两个元素(first 和 last):

BillGates 而解析器会把它分解为像这样的子元素:

Bill Gates 19.2 转义字符

非法的XML字符必须被替换为实体引用(entity reference)。

假如您在XML文档中放置了一个类似\字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:

if salary < 1000 then 为了避免此类错误,需要把字符\替换为实体引用,就像这样:

if salary < 1000 then 19.3 CDATA

CDATA内部的所有东西都会被解析器忽略。

假如文本中包含了大量的\和\字符,就像编程代码中经常出现的情况一样,那么这个XML元素就可以被定义为一个CDATA部分。

CDATA区段开始于\,结束于\:

在上面的例子中,在CDATA区段中的所有东西都会被解析器忽略。 19.4 关于CDATA区段的注释

CDATA区段不能包含字符串\,所以,CDATA区段的嵌套是不被允许的。

同时也需要确保在\字符串中没有空格或折行。

20 XML编码

XML文档可能包含外国字符,比如挪威语,或者法语。

为了让XML解析器读懂这些字符,您需要把XML文档存为Unicode。 20.1 Windows 2000记事本

Windows 2000记事本可以把文件保存为Unicode。

将XML文件保存为Unicode(注意,此文档未包含任何编码属性):

John George French: êèé 上面的文件,在IE 5+、Firefox或者Opera中不会出错,但是在Netscape

Mengliao Software Studio - Bosun Network Co., Ltd.

第 45 页 - 共 53页

XML系列教程之一——XML教程

6.2中会出错。

20.2 Windows 2000 Notepad with Encoding

Windows 2000 记事本使用 \编码将文件保存为 Unicode。 如果您为保存为 Unicode 的 XML 文件添加了一个编码属性,windows 的编码值可能产生错误。

下面的编码,不会报错:

如果您试图向IE中载入XML文档,可能会得到两种指示编码问题的错误: 在文本内容中发现非法字符:

如果XML文档中的某个字符与编码属性不匹配,您就会得到这个错误消息。通常,当XML文件中含有外国字符,且当文件使用类似记事本的单字节编码编辑器保存,以及没有指定编码属性时,您就会得到这个错误消息。

将当前编码切换为不被支持的指定编码:

如果您的文件被保存为Unicode/UTF-16,但是编码属性被指定为单字节编

Mengliao Software Studio - Bosun Network Co., Ltd.

第 46 页 - 共 53页

XML系列教程之一——XML教程

码(比如Windows-1252、ISO-8859-1或者UTF-8)时,那么您就会得到这个错误消息。或者当您的文档被保存为单字节编码,但编码属性被指定为双字节编码(比如UTF-16)时,也会得到这个错误消息。 20.4 结论

结论是:编码属性应当被指定为文档被保存时所使用的编码。我最好的避免错误的建议是:

? 使用支持编码的编辑器; ? 确定编辑器使用的编码;

? 在您的 XML 文档中使用相同的编码属性。

21 XML DOM高级

XML DOM(Document Object Model)定义了访问和操作XML文档的标准方法。 21.1 XML DOM

DOM把XML文档视为一种树结构。通过这个DOM树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。

在本教程的较早章节中,我们介绍了XML DOM,并使用了XML DOM的getElementsByTagName()从DOM树中取回数据。 21.2 获取元素的值

下面的代码检索第一个元素的文本值: </p><p>x=xmlDoc.getElementsByTagName(\Mengliao Software Studio - Bosun Network Co., Ltd. </p><p> </p><p>第 47 页 - 共 53页 </p><p>XML系列教程之一——XML教程 </p><p>txt=x.nodeValue; 结果:txt = \21.3 获取属性的值 </p><p>下面的代码检索第一个<title>元素的\属性的文本值: </p><p>txt=xmlDoc.getElementsByTagName(\结果:txt = \21.4 改变元素的值 </p><p>下面的代码改变第一个<title>元素的文本值: </p><p>x=xmlDoc.getElementsByTagName(\x.nodeValue=\21.5 改变属性的值 </p><p>setAttribute()方法可用于改变已有属性的值,或创建一个新属性。 下面的代码向每个<book>元素添加了名为\的新属性(值是\): </p><p>x=xmlDoc.getElementsByTagName(\ for(i=0;i<x.length;i++) { x[i].setAttribute(\ } 21.6 创建元素 </p><p>createElement()方法创建新的元素节点。 createTextNode()方法创建新的文本节点。 </p><p>appendChild()方法向节点添加子节点(在最后一个子节点之后)。 如需创建带有文本内容的新元素,需要同时创建元素节点和文本节点。 下面的代码创建了一个元素(<edition>),然后把它添加到第一个<book>元素中: </p><p>Mengliao Software Studio - Bosun Network Co., Ltd. </p><p> </p><p>第 48 页 - 共 53页 </p><p></p><div class="page"><ul><li><a href=doc_3fca821m240mq5e7e8i9_1.html>1</a></li><li><a title=上一页 href=doc_3fca821m240mq5e7e8i9_9.html><<</a></li><li><a href=doc_3fca821m240mq5e7e8i9_7.html>7</a></li><li><a href=doc_3fca821m240mq5e7e8i9_8.html>8</a></li><li><a href=doc_3fca821m240mq5e7e8i9_9.html>9</a></li><li><a href=doc_3fca821m240mq5e7e8i9_10.html class="hover" >10</a></li></ul></div></p> <br /> <p><script type="text/javascript">s("content-m-bot");</script></p> </div> <div class="m-pages"></div> <div class="down-word"> <div class="word-ico"></div> <div class="word-tit"> <span class="docx">XML系列教程之一:XML教程.doc</span> <span>将本文的Word文档下载到电脑</span> <span><script type="text/javascript">s("content-m-down");</script></span> </div> <div class="word-pic"><a href="javascript:;">下载这篇word文档</a></div> </div> </article> <div class="art-prenext"> 搜索更多关于: <a class="title2" title="XML系列教程之一:XML教程" href="s02g025024oorg7rk0po3vfgrfeo01m02g025024k0po3v_1.html">XML系列教程之一:XML教程</a> 的文档 </div> <div class="main-tab"><a class="on" href="javascript:;">相关推荐</a></div> <script type="text/javascript">s("content-m-like");</script> <div class="main-tab"><a class="on" href="javascript:;">相关阅读</a></div> <div class="tab-box"> <ul class="main-new on clearfix"> <li><a title="全国各地现有的彭氏字辈" href=c69czn3rl2n76vac3m06w_1.html>全国各地现有的彭氏字辈</a></li><li><a title="五种纸盒子的折法 - 图文" href=c5ucor0ixcm2cg5h8iu87_5.html>五种纸盒子的折法 - 图文</a></li><li><a title="孔子与儒家的论学思想" href=c6po6e2uj47207lq1bacf_3.html>孔子与儒家的论学思想</a></li><li><a title="2015-2020年中国公共安全行业深度研究与未来前景预测报告 - 图文" href=c1fkjl33g8y0wacw0ffs8_2.html>2015-2020年中国公共安全行业深度研究与未来前景预测报告 - 图文</a></li><li><a title="网页制作与工具技能训练" href=c7joot6issq7tdil036ba_8.html>网页制作与工具技能训练</a></li><li><a title="南中医细胞生物学各章复习体及答案" href=c2m7wo5m7tr75clm2zb62_8.html>南中医细胞生物学各章复习体及答案</a></li><li><a title="凝析油研究 - 图文" href=c4b2ap093x89sc9k3qd14_1.html>凝析油研究 - 图文</a></li><li><a title="广州地铁小北站过站方案" href=c5wqxf7meb99lpyv24ext_1.html>广州地铁小北站过站方案</a></li><li><a title="嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔" href=c1llk84bive8wrp7237rx_5.html>嵌入式Linux之我行 史上最牛最详细的uboot移植,不看别后悔</a></li><li><a title="翠欧控制卡入门手册-MC206X-学习" href=c2ch1g74pmv0c4dk2wbkz_6.html>翠欧控制卡入门手册-MC206X-学习</a></li> </ul> </div> </div> <footer class="footer"> <p class="bt-links"><a href="https://m.diyifanwen.net/">手机版</a><span class="v-line">|</span><a href="https://www.diyifanwen.net/">PC版</a></p> <p>Copyright © 2018-2023 第一范文网 版权所有<br/> 声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。<br>客服QQ:xxxxxx 邮箱:xxxxxx@qq.com<br> <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">渝ICP备2023013149号</a> </p> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?1e9741f8c1b2df70963b3e7f3680f749"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </footer> <!-- <div class="theme-popover"> <div class="theme-poptit"> <a href="javascript:;" title="关闭" class="close">×</a> <b>快捷下载通道</b>(下载后可以自由复制和排版) </div> <div class="theme-popbod dform"> <p class="downtit">开通<i>VIP会员</i>免费下载</p> <p class="downtip">VIP会员享受百万份文档免费复制和下载,是您最优的选择,价格低至0.3元/份,每月最高下载150份!</p> <div class="youke_pay"> <div class="uservip"><a href="https://www.diyifanwen.net/user/index.php">马上开通会员</a></div> </div> </div> <p class="tovip">单篇下载:<b style="color:red;">10元</b> (<span style="text-decoration: line-through;">原价:20元</span>) <a href="javascript:;" style="color:blue;">点击下载</a> </p> <p class="downtxt">注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。<br>微信:fanwen365 QQ:370150219</p> </div> </div> --> <div class="theme-popover-mask"></div> <script type="text/javascript"> //menu $(".header .menu").on("click", function(){ $("body").append("<div class=\"mask-bg menu-mask-bg\"></div>"); $(".menu-slide").show(); $("html,body").css({height:$(window).innerHeight(), overflow:"hidden"}); setTimeout(function(){ $(".menu-slide").css({transform:"translateX(-50px)"}); },50) }); $("body").on("click", ".menu-mask-bg", function(){ $(".menu-slide").css({transform:"translateX(-100%)"}); $(".menu-mask-bg").remove(); $("html,body").removeAttr("style"); setTimeout(function(){ $(".menu-slide").hide(); },300) }); //search $(".header .search").click(function(){ if($(".search-box").is(":hidden")){ $(this).children("i").removeClass("search-icon").addClass("close-icon"); $(".search-box").fadeIn("fast"); }else{ $(this).children("i").removeClass("close-icon").addClass("search-icon"); $(".search-box").fadeOut("fast"); } }); //nav if($(".nav").length > 0) { var nav = new Swiper(".nav",{ slidesPerView: "auto" }); } </script> <script type="text/javascript"> $(".user-login").click(function () { $(".drop-menu").toggle(); }); </script> <script type="text/javascript"> $(".pay1 img").click(function () { $(".wxpay").css("display", "block"); $(".alipay").css("display", "none"); $(".pay1 img").addClass("over"); $(".pay2 img").removeClass("over"); }); $(".pay2 img").click(function () { $(".wxpay").css("display", "none"); $(".alipay").css("display", "block"); $(".pay1 img").removeClass("over"); $(".pay2 img").addClass("over"); }); </script> <script type="text/javascript"> // var userinfo = function(data) { // if (data.code === "2" || data.code === "3") { // $(".word-pic a").click(function(){ // $(".theme-popover-mask").fadeIn(100); // $(".theme-popover").slideDown(200); // var downid = "3fca821m240mq5e7e8i9" // $(".tovip a").click(function(){ // var readurl = 'https://www.diyifanwen.net/plus/view.php&psrc='; // var downurl = 'https://www.diyifanwen.net/d.asp?id='; // var payurl = readurl; // payurl = payurl.replace('view.php', 'pay/pay.asp?id=3fca821m240mq5e7e8i9&p=10'); // var gotourl = payurl + downurl + downid // location.href = gotourl; // }) // }); // } // else{ $(".word-pic a").click(function(){ location.href = "https://www.diyifanwen.net/d.asp?id=3fca821m240mq5e7e8i9&p=10"; }); // } // } // $(document).ready(function($) { // $(".theme-poptit .close").click(function(){ // $(".theme-popover-mask").fadeOut(100); // $(".theme-popover").slideUp(200); // }); // }); </script> <script src="https://www.diyifanwen.net/js/zfb.js" type="text/javascript"></script> <script src="https://www.diyifanwen.net/user/check_level_m.php?callback=userinfo"></script> <script src="https://m.diyifanwen.net/js/gobacktop.js" type="text/javascript"></script> </body> </html>