所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

HTML中XML数据岛如何编辑添加记录?超详细步骤轻松掌握

HTML中XML数据岛如何编辑添加记录?超详细步骤轻松掌握 一

文章目录CloseOpen

先搞懂——XML数据岛是什么?为什么用它?

其实XML数据岛就是把XML文件里的数据“嵌”到HTML页面里,让HTML能直接读取和显示这些数据,不用发请求给服务器。打个比方,你把小吃店的名字、地址、评分写在一个XML文件里,然后HTML页面就像“挂钩”一样挂住这个XML文件,把数据拉出来显示成列表或者表格。

为什么用它?比如做本地网页、演示页面或者小流量的静态页时,不用搭后端数据库,省事儿。我朋友那美食指南就是静态页,总不能为了几个店铺信息去弄个MySQL数据库吧?XML数据岛刚好解决这问题——它就像“本地小仓库”,把数据存在XML文件里,HTML直接取用。

我再用个对比表格帮你更清楚它的优势:

对比项 XML数据岛 后端数据库(如MySQL)
适用场景 本地页、静态演示页、小流量静态站 动态网站、大流量站点、需要用户交互的页
操作复杂度 低(手动改XML文件或HTML内的XML标签) 高(需搭建后端、写接口)
成本 几乎为0(不用服务器、数据库) 高(服务器、数据库、维护成本)
修改便利性 改XML文件就行,不用动HTML结构 需写SQL语句或调用接口,改后端逻辑

比如我另一个做摄影工作室展示页的朋友,把作品的名称、拍摄时间、简介存成XML数据岛,改作品信息时只用改XML文件,不用动HTML里的表格代码——这就是它的方便之处。

手把手操作——XML数据岛的记录编辑与添加

接下来进入实操环节,我会用“美食指南”的例子,带你一步步做,保证你能跟着走。

第一步:基础准备——把HTML和XML关联起来

首先你得有两个文件:存数据的XML文件显示数据的HTML文件

比如我朋友的XML文件叫shops.xml,内容长这样:


老巷口馄饨

幸福路12号

4.8

138-XXXX-XXXX

张记油条

光明街8号

4.6

139-XXXX-XXXX

然后HTML文件要“挂钩”这个XML文件,用标签引入:

<!-
  • HTML里引入XML数据岛 >
  • <!-

  • 用表格显示数据 >
  • 店铺名称 地址 评分 电话

    这里有两个关键:

  • 标签的id:比如shopData,等下HTML要通过这个id找到数据岛;
  • 表格的datasrc属性:#shopData就是“挂钩”到id为shopData的XML数据岛;
  • datafld属性:对应XML里的字段(比如name对应XML里的标签)。

    我朋友一开始就是因为把id写成了shopList,但表格的datasrc还是#shopData,结果页面显示空表格——你一定要注意id和datasrc要一致

    第二步:编辑已有记录——改XML就行,超简单

    比如你想把“张记油条”的评分从4.6改成4.7,不用动HTML,直接打开shops.xml文件:

    找到节点里的4.6,改成4.7,保存文件。

    刷新HTML页面,表格里的评分就变成4.7了——是不是比想象中简单?

    我朋友一开始绕了个大弯:他以为要改HTML里的表格内容,结果改了半天没反应,后来我告诉他“数据存在XML里,HTML只是‘显示器’”,他才反应过来。

    再比如想改“老巷口馄饨”的电话,直接改XML里的标签内容就行,HTML会自动同步显示——这就是XML数据岛的核心逻辑:数据和显示分离

    第三步:添加新记录——找准父节点,别加错位置

    现在要加一家新店铺“李阿姨豆浆”,地址是“建国路5号”,评分4.9,电话186-XXXX-XXXX,该怎么操作?

    关键:新记录要加在XML的“父节点”里面——比如shops.xml的父节点是,所有节点都要放在里面。

    具体步骤:

  • 打开shops.xml文件;
  • 找到标签,把新的节点加在最后一个之后,之前
  • 写新的内容:
  •  
    

    李阿姨豆浆

    建国路5号

    4.9

    186-XXXX-XXXX

  • 保存文件,刷新HTML页面——新店铺就显示在表格里了!
  • 我朋友之前加新店铺时犯了个低级错误:把新

    放在了外面,结果页面没显示。后来我给他看XML的树形结构(父节点包着子节点),他才明白——你加的子节点必须在父节点的“肚子里”,不然XML不认。

    第四步:避坑!改了没反应?检查这3点

    很多人改完XML没反应,多半是踩了这几个坑,我帮朋友排过无数次雷:

  • 路径错了:比如XML文件在
  • data文件夹里,但HTML里写的是src="shops.xml"——要改成src="data/shops.xml"
  • id不匹配
  • 标签的id是shopList,但表格的datasrc#shopData——必须一模一样;
  • XML语法错了:比如标签没闭合(写了
  • 李阿姨豆浆,漏了)、属性没加引号(比如,应该是)。

    这时候你可以用W3School的XML验证工具(https://www.w3schools.com/xml/xml_validator.aspnofollow)检查——把XML内容复制进去,点“Validate”,它会告诉你哪里错了。我每次改XML都会用这个工具,避免低级错误。

    进阶:用JavaScript让页面更灵活(可选)

    如果你想让用户在页面上直接点按钮加记录(比如做一个简单的后台管理页),可以用JavaScript操作XML数据岛。

    比如写一个函数,点击按钮就能加新店铺:

    html

    <!-

  • HTML按钮 >
  • function addNewShop() {

    //

  • 获取XML数据岛的文档对象

    var xmlDoc = document.getElementById('shopData').XMLDocument;

    //

  • 创建新的节点和子节点

    var newShop = xmlDoc.createElement('shop');

    var name = xmlDoc.createElement('name');

    var addr = xmlDoc.createElement('addr');

    var score = xmlDoc.createElement('score');

    var tel = xmlDoc.createElement('tel');

    //

  • 设置子节点的内容(可以换成输入框的值,这里用固定内容演示)

    name.textContent = '新店铺';

    addr.textContent = '新地址';

    score.textContent = '4.5';

    tel.textContent = '135-XXXX-XXXX';

    //

  • 把子节点加到里,再把加到里

    newShop.appendChild(name);

    newShop.appendChild(addr);

    newShop.appendChild(score);

    newShop.appendChild(tel);

    xmlDoc.getElementsByTagName('shops')[0].appendChild(newShop);

    }

    点击按钮,页面就会新增一条记录——不过这需要一点JS基础,如果你是新手,可以先从手动改XML开始,熟练了再试这个方法。

    我朋友按这些步骤操作后,现在自己就能轻松加新店铺了,上周还跟我说“终于不用每次找你改数据了”——其实XML数据岛真的不难,只要摸透“数据存在XML里,HTML挂钩显示”的逻辑,就能玩转。

    你要是试了这些方法,不管是成功还是遇到问题,都欢迎回来留言告诉我——比如你有没有遇到路径错的情况?或者加新记录时有没有漏闭合标签?咱们一起聊聊。毕竟实操才是最能学东西的,赶紧去试试吧!


    XML数据岛到底是什么?和后端数据库有啥区别呀?

    XML数据岛其实就是把XML文件里的数据“嵌”到HTML页面里,让HTML不用发请求给服务器就能直接读数据、显示数据。打个比方,就像你把小吃店的名字、地址写在一个小本子(XML文件)里,HTML页面像个“显示器”,直接把小本子里的内容拉出来拼成列表或表格给用户看。

    它和后端数据库(比如MySQL)的区别挺清楚的——要是做本地页、静态演示页或者小流量静态站,用XML数据岛就够了,不用搭服务器、写接口,改数据只用动XML文件;但如果是动态网站、大流量站点或者需要用户提交表单的页面,那还是得用后端数据库,毕竟XML数据岛没法处理复杂的用户交互。

    HTML和XML关联的时候,容易踩哪些坑呀?

    最容易踩的坑有两个:一是标签的id和表格的datasrc属性没对应上,比如你XML标签id写的是“shopList”,但表格里datasrc还是“#shopData”,这时候页面肯定显示空表格;二是XML文件的路径错了,比如XML存在“data”文件夹里,你却写src="shops.xml",得改成“data/shops.xml”才行。我朋友之前就踩过id不对应的坑,改了半天HTML没反应,后来才发现是id和datasrc没对上。

    编辑已有记录时,直接改XML就行?真不用动HTML吗?

    对呀!因为XML数据岛是“数据和显示分离”的——XML文件存的是真数据,HTML只是负责把数据“展示”出来。比如你想把“张记油条”的评分从4.6改成4.7,直接打开XML文件,找到对应的4.6改成4.7,保存之后刷新HTML页面,评分就变了,完全不用碰HTML里的表格代码。我朋友一开始还傻兮兮改HTML表格,结果改了半天没反应,后来才明白这个逻辑。

    添加新记录时,为什么有时候加了但页面没显示?

    多半是两个原因:要么是你把新的节点加错位置了——必须得放到父节点里面,要是不小心放到外面,XML根本不认这个节点;要么是XML语法错了,比如标签没闭合(比如写了李阿姨豆浆,漏了)或者属性没加引号(比如应该写成)。我朋友之前加新店铺时,就把节点放到了外面,结果页面没反应,调整位置后才显示出来。

    想用JavaScript在页面上直接加记录,需要注意什么呀?

    首先得说,这个方法是可选的,适合有点JS基础的同学。步骤大概是这样的:先通过document.getElementById拿到XML数据岛的文档对象(比如var xmlDoc = document.getElementById('shopData').XMLDocument),然后创建新的节点和它的子节点(比如、),接着给子节点设内容(可以用输入框的值代替固定内容,更灵活),最后把新节点加到父节点里。要是你刚入门,先手动改XML就行,等熟练了再试JS操作~

  • 原文链接:https://www.mayiym.com/51133.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码