首页 > 语言 > 关键词  > 正文

Web设计中如何使用XML数据

2007-08-21 11:00 · 稿源:中国站长站

XML数据源对象是一个ActiveX控件,允许你在XML文件和HTML页面之间操作数据。本文将向你展示如何从各种XML数据源中提取数据,以及如何使用JavaScript显示这些数据。

XML数据源对象DSO是一个微软ActiveX控件,构建在微软IE4以后的版本上。这个对象允许你把一个外部的XML文件或者嵌入HTML文件中的内容提取到HTML页面中。

你可以在一个Web页面中使用XML - DSO从一个外部XML文件中选取内容,从嵌入Web页面的XML中提取XML数据,然后使用JavaScript操作这些数据。然而,并不建议在Internet中使用这个对象,因为DSO只能工作在MSIE 4以上的浏览器中,因此这可能会带来一些兼容性问题。 所以,在企业内部网使用XML-DSO是很合适的。

开始

为了初始化XML - DSO对象,我们使用<OBJECT>标记。 用于XML-DSO的CLASSID是:

CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39

这ID唯一标识XML-DSO。使用下面的代码在一个Web页面中初始化这个控件:

<OBJECT ID="SomeID" CLASSID="CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39"></OBJECT>

虽然大部分对象需要许多参数与之相关联,但是XML-DSO不需要任何参数。

使用一个XML数据岛析取数据

首先,通过使用<XML>标记包含一个XML数据岛。其次,给它分配一个ID,xmldb --以备以后使用。 数据实际上是使用HTML标记:<ALT>,<SPAN>,<DIV>等等提取的。代码列表1中的代码使用了<SPAN>标记。datasrc属性指定了你想从中提取数据的那个数据岛。datafld属性指定了你想要的数据的XML标记。所以,第一个<SPAN>提取名称,而第二<SPAN>提取性别。

代码列表1:

以下为引用的内容:

  <!-- example1.htm -->
  <html>
  <head>
  <title>XML DSO-example1.htm</title>
  </head>
  <body bgcolor="#FFFFFF">
  <xml id="XMLdb">
  <db>
  <member>
  <name>Premshree Pillai<name>
  <sex>male</sex>
  </member>
  <member>
  <name>Vinod</name>
  <sex>male</sex>
  </member>
  </db>
  </XML>

  <span datasrc="#XMLdb" datafld="name"></span>
  <br>
  <span datasrc="#XMLdb" datafld="sex"></span>

  </body>
  </html>

注意这段代码没有初始化一个XML-DSO对象。这是因为XML数据岛的使用中已经隐式地创建了一个。输出应为:

Premshree Pillai

male

注意在XML数据岛中有两个<name>和<sex>标记。使用这个方法,你只能提取这些标记中的第一个实例。代码列表2中的代码使用<TABLE>标记提取所有的实例:

输出将是:

Name         Sex

Premshree Pillai   male

Vinod         male

在代码列表2中,<TABLE>标记使用<TD>标记内的<DIV>标记提取数据。表格将自动重复<member>(<name>和<sex>的母标记)的每个实例。

代码列表2:

以下为引用的内容:

  <!-- example2.htm -->
  <html>
  <head>
  <title>XML DSO-example2.htm</title>
  </head>
  <body bgcolor="#FFFFFF">

  <xml id="XMLdb">
  <db>
  <member>
  <name>Premshree Pillai<name>
  <sex>male</sex>
  </member>
  <member>
  <name>Vinod</name>
  <sex>male</sex>
  </member>
  </db>
  </XML>

  <table datasrc="#XMLdb" border="1">
  <thead>
  <th>Name</th>
  <th>Sex</th>
  </thead>
  <tr>
  <td><div datafld="name"></div></td>
  <td><div datafld="sex"></div></td>
  </tr>
  </table>

  </body>
  </html>

使用外部XML文件提取数据

为了使用XML-DSO加载一个外部XML文件,你必须显式的包含这个对象并且使用一些JavaScript。

首先创建一个XML-DSO对象,使用ID myXML。添加宽度和高度属性到<OBJECT>标记中,然后设置它们的值为0。这保证XML-DSO对象不会占据你的Web页面的任何空间。

其次,使用datasrc创建一个象myXML一样的表--类似于代码列表2中一样。代码使用<DIV>标记(在TD标记之)提取数据,使用datafld作为第一栏的信息,并且使用URL作为第二栏。添加<SCRIPT>标记,因为在这里,外部的XML使用Java脚本显式地声明你想要加载的XML文件。

设置变量xmlDso为myXML.XMLDocument。myXML引用你已经创建的对象。接下来,使用XML-DSO的load()方法加载example3.xml。文件example3.xml连接到对象myXML上。

以下为引用的内容:
  <!-- example3.XML -->
  <?XML version="1.0" ?>
  <ticker>
  <item>
  <message>JavaScript Ticker using XML DSO</message>
 <URL>https://someURL.com</URL>
  </item>
  </ticker>

现在,研究一下下面的HTML页面:

以下为引用的内容:

  <!-- example3.htm -->
  <html>
  <head>
  <title>XML DSO-example3.htm</title>
  <script language="JavaScript">
  function load() {
  var xmlDso=myXML.XMLDocument;
  xmlDso.load("example3.XML");
  }
  </script>
  </head>
  <body bgcolor="#FFFFFF" onLoad="load()">

  <object id="myXML" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39"
width="0" height="0"></object>

  <table datasrc="#myXML" border="1">
  <thead>
  <th>Message</th>
  <th>URL</th>
  </thead>
  <tr>
  <td><div datafld="message"></div></td>
  <td><div datafld="URL"></div></td>
  </tr>
  </table>

  </body>
  </html>

输出应是:

Message URL

JavaScript Ticker using XML DSO https://someURL.com

上面的脚本非常特殊化。下面给出一个更一般的脚本:

以下为引用的内容:

  <script language="JavaScript">
  var XMLDso;
  function load(XMLFile, objName) {
  eval(''xmlDso=''+objName+''.XMLDocument'');
  xmlDso.load(XMLFile);
  }
  </script>
  Now, to load any XML file use:
  load("SomeXMLFile.xml","anyXMLDsoObject");

举报

  • 相关推荐
  • HKTWeb3 交易平台正式上线,打造链上资产与实体金融桥梁

    HKTWeb3交易平台将于2025年8月2日在香港正式上线。该平台以"安全、合规、透明"为核心,致力于连接链上资产与实体金融世界,提供六大核心业务模块:链上信托、链上贸易、链上金融、HKT钱包、交易平台和锚定资产储备。平台接受香港持牌信托公司监管,确保资金流转、交易撮合等环节的合规性。作为全球首批采用"实体承兑+链上信托"架构的数字资产平台,HKTWeb3旨在构建服务实体经济的Web3基础设施,推动数字资产在投资、支付等现实场景的应用。平台将与香港Web3科技协会合作,加速本地生态建设。

  • AI日报:GPT-5-Auto现身Mac客户端;阿里开源WebAgent项目WebShaper;腾讯推X-Omni多模态模型

    【AI日报】今日AI领域重要动态:1)阿里开源WebAgent项目WebShaper,GAIA评测超越Claude4-Sonnet;2)Moonvalley推出草图转视频功能,支持手绘生成电影级视频;3)腾讯X-Omni模型实现图文理解重大突破;4)百度搜索测试AI应用中心入口;5)Midjourney+新增个性化推荐功能;6)GPT-5或于2025年夏季发布;7)Ollama推出桌面客户端;8)OWL团队开源多智能体协作工具Eigent;9)OpenAI年收入激增至120亿美元;10)英伟达H20芯片因安全风险被约谈;11)万兴科技天幕2.0模型国内排名第四,与华为云共建AI视频实验室。

  • 告别“数据录入机器”:ToB智能体如何让CRM回归业务本质

    2025年腾讯全球数字生态大会上,销售易推出首款AI CRM产品NeoAgent,基于大模型技术重构企业销售流程。该产品通过语音指令自动完成客户拜访规划、关联历史数据并生成策略建议,实现从菜单点击到自然对话的交互变革。销售易通过"三阶跃迁"模式:解放双手的语音转结构化记录、突破菜单层级的智能检索、结合销售方法论的场景赋能,深度重构CRM系统。产品依托统一数据平台,实现多模态信息整合与权限管控,采用混合模型架构平衡响应速度与决策质量。目前已在米其林等企业应用中显著提升销售转化率,并通过"用户+流量"混合收费模式验证商业化路径。这标志着ToB领域AI正从效率工具向"数字同事"进化,其核心价值在于理解业务、适配场景并创造增量。

  • HUAWEI MateBook Fold 非凡大师斩获2025年iF设计奖:折叠屏电脑设计新标杆

    华为MateBook Fold非凡大师荣获2025年德国iF设计奖,该奖项被誉为工业设计界的"奥斯卡"。这款全球最大18英寸折叠屏笔记本以突破性铰链设计和7.3mm超薄机身(展开仅1.16kg)获得评委会认可,在技术创新与用户体验间取得卓越平衡。产品搭载3.3K专业大屏(1600nits峰值亮度/229PPI),配合鸿蒙操作系统带来沉浸式办公体验。水滴型铰链采用三段式转轴设计,确保屏幕平整耐用。此次获奖进一步巩固了华为在笔记本行业的创新引领地位。

  • 《新世界加载中》收官,可灵AI拓宽影像边界

    “AI是人类文明进步的产物,也是我们跨越未来的重要助力。”通用人工智能时代,著名人工智能研究学家肖博士,在某项目出现重大突破后,向全世界发布了含有上述内容的AGI时代宣言。 “您觉得在大势所趋的当下,这个世界还有人工智能尚未普及的地区吗?”面对记者的这一疑问,肖博士开了一个玩笑,“也许,银河系之外”。 可在他脑海中出现的画面,却是破败的村庄�

  • 在天猫买“设计师款”的年轻人,捧红一个百亿市场

    消费正在加速分化。 一方面,各种平替经济、白牌商品纷纷崛起,市场对质价比的追求日益强劲;另一方面,被买断货的泡泡玛特,老铺黄金门口大排长龙的景象,又印证出当下的另一种消费逻辑—— 用户对于消费意义的追求,变得更多元了。在购买商品时,他们不再单纯追求功能性,而是更关注商品能否和自己的兴趣爱好、生活主张乃至更深层次的文化内涵所契合。 从宠�

  • 门店督导效率翻4倍!数势科技AI Agent赋能胖东来、霸王茶姬、益禾堂,《为你喝彩》聚焦黎科峰:让店员语音驱动数据决策

    北京卫视纪实栏目《为你喝彩》聚焦数势科技创始人黎科峰,展现其从京东高管转型AI创业者的历程。他放弃高管职位创立数势科技,专注"Data+AI"赛道,打造颠覆企业决策的智能分析工具SwiftAgent。该产品已实现10倍提效和100%精准决策,助力益禾堂等企业数据普惠化。黎科峰将航天工程思维注入AI架构,以技术基因突破创新,践行"坚持大多数人放弃的事才能成功"的理念。节目还呈现了他带领团队打破SaaS十年困局,用AI重构B端服务模式的商业实践,推动中国企业服务直接进入Agent时代。

  • AI日报:GPT-5正式发布;百度将推文心5.0大模型;知网发布AIKBase V2.0多模态数据管理系统

    《AI日报》精选AI领域最新动态:1)OpenAI发布GPT-5模型,具备强大多模态能力但推理任务仍有局限;2)知网推出AIKBase V2.0多模态数据管理系统;3)Ideogram新增"角色"功能实现图像风格统一;4)Cursor发布CLI版本支持终端AI编程;5)百度即将推出全新推理模型和文心5.0大模型;6)dots.ocr推出1.7B参数多语言文档解析工具;7)特斯拉解散Dojo超算团队转向英伟达合作;8)谷歌Pixel 10引入AI相�

  • 数据库就要选华为云!

    文章讲述了作者10年前创业失败的经历,反思当时过度投入高端服务器和技术架构,却忽视了业务实际需求。如今随着云计算、大数据等技术发展,数据库架构设计更强调弹性、可靠性和智能化。游戏行业作为典型高并发场景,对数据库提出实时响应、高可用等严苛要求。华为云TaurusDB作为新一代云原生数据库,具备高性能(QPS达百万级)、弹性扩展(1写15读节点)、高可靠性(跨区部署、RPO为0)等优势,完美适配游戏行业需求。其核心技术包括计算存储分离、并行执行和NDP近数据处理,解决了传统MySQL架构的复制延迟等问题。文章建议企业选择与业务协同成长的数据库平台,而非从零搭建架构。

  • 水乡感质 设计探本!ASKO在水乡乌镇开启设计游学之旅

    7月25-27日,第三届ASKO非凡设计大奖在乌镇举办设计游学活动。活动以"水乡质感+设计探本"为主题,邀请设计师们走进木心美术馆、西栅染坊等场所,感受传统与现代交融的水乡美学。ASKO中国区总经理华安、《IDEAT理想家》出版人杨莹等嘉宾参与,共同探讨理想人居设计。活动期间还恰逢贝多芬《命运交响曲》音乐会,设计师们在艺术氛围中汲取灵感。ASKO作为北欧百年家电品牌,秉持极简设计与人文关怀理念,致力于推动美好生活方式。