`

xml数据岛例子

阅读更多
XML数据岛技术的总结
  最近做的一个项目中运用 xml 数据岛技术,所以把数据岛方面的知识总结一下。

  XML 数据岛 ( data islands )就是被 html 页面引用或者包含的 xml 数据,是从 IE5 开始引入的一项技术。可以通过 xml 标签很轻松将数据岛插入到 html 文档中。那么怎么访问 xml 数据岛的数据呢,很简单,通过 xml 的 id 。在页面中的数据岛和其他的 xml 数据一样,可以通过标准的dom 方法来进行访问。

   数据岛的优点是可以很容易的将 xml 中的数据和 html 元素进行绑定,免去了手工把数据填充到 html 中的麻烦。修改数据岛中的数据,页面上与之绑定的html元素的值也随之改变。 OK ,先来看个数据岛之 Hello World 版,

  数据岛其实就是一串 xml ,必须要用 xml 标签围起来,示例如下:

<xml id= "island" >

<root>


   <p1>
    <name> magicdoom </name>

    <age> 24 </age>

    <email> magicdoom@gmail.com </email>


   </p1> 
</root>

</xml>

数据岛有两种定义方式,一种是直接将上述 xml 嵌入到 html 页面中,另一种是见 xml 数据保存在单独的 xml 文件中,在页面只需嵌入 <xml id= "island" src= "xxx.xml" ></xml>

其中的 src 属性值为保存 xml 数据的那个文件的位置。

   如何将上面定义好的 xml 数据岛绑定到 html 控件上呢?答案是通过 datasrc , datafld 属性,下面是一个将 xml 数据岛绑定到 html 控件上的示例:

<table width= "100%" datasrc= "#island" >

 

<thead>

 

      <tr>

 

            <th> Name </th>

 

            <th> Age </th>

 

            <th> Email </th>

 

      </tr>

 

</thead>

 

<tbody>

 

      <tr>

 

            <td align= "center" ><span  datafld= "name" ></span></td>

 

            <td align= "center" ><span datafld= "age" ></span></td>

 

            <td align= "center" ><span datafld= "email" ></span></td>

 

       </tr>

 

</tbody>

 

</table>

例中 table 的 datasrc 属性的 value 为 xml 数据岛中的定义的 id ,注意必须要在前头加上 # 。

表格中的 datafld 属性对应于 xml 中的元素的名称。

将上述数据岛和 html 代码保存到一个 html 文件中,在 IE 中打开,可以看到结果如下:

Name
Age
Email

magicdoom
24
magicdoom@gmail.com


               

下面我们来看看在 javascript 中怎样通过DOM访问数据岛中的数据

 

xmldoc = island;     // 取数据岛

var rootElement = xmldoc.documentElement.firstChild;  // 取根元素

 

// 实现打印出数据岛中第一个元素的值

  if (rootElement.hasChildNodes())

 

  alert (rootElement.firstChild.text) ;

 

// 创建一个新的元素,添加到数据岛中

var test = xmldoc.createElement( 'test' );

 

  var testTxt = xmldoc.createTextNode( "This is a test!" );

 

  test.appendChild(testTxt);

 

  rootElement.appendChild(test);

  alert (rootElement.lastChild.text) ;

 

// 删除数据岛中的一个元素

rootElement.removeChild(rootElement.lastChild) ;

 

// 修改数据岛中的一个元素的值

rootElement.firstChild.text= "new value" ;




//查找xml元素 使用getElementsByTagName返回一个element的数组
rootElement.getElementsByTagName("name")(0).text



//测试数据岛绑定的效果
在页面中定义<button  onclick="testDSO()">testDSO</button>
function  testDSO()
{
rootElement.getElementsByTagName("name")(0).text="modefied name";
}
//点击按钮后就会发现页面上的Name的值也随之改变
 

     XML 数据岛的应用很容易和其他的技术进行结合。我当前做的一个项目中,就是和 HTC 以及 XmlHttp 技术进行结合。 htc 做了一些功能强大的控件(比如Tree非常好用),底层通过XmlHttp 与后台的服务器进行交互,可以达到无刷新提交页面。前台通过js来操纵页面中的数据岛和发送数据到后台的java类,项目的 框架支持在js调用后台 java 类的方法,有点类似于 DWR 。后台的 java 类返回 XML 数据到前台的 js , js 再将xml数据注入到页面的数据岛中。
   项目采用的框架是国内的一家公司的商业产品, 通过几个月的实际使用,虽然还有一些问题,但是这个框架确实是大大提高了开发效率。

最后总结一下 xml 数据岛的最大优点是可以和html元素进行绑定,修改数据岛中的数据,与之绑定的html元素的值也会随之改变。但是也要看到它的缺点:

1.只能在 IE 下运行,firefox等其他的浏览器下无法使用。

2.安全性, xml 数据岛可以通过查看 html 的源代码获取。

 

另:在 DWR 中,提供有一些便捷的 js 函数,可以将后台 java 方法传回的 json 格式的 js 对象的属性值,赋给 html 页面中的 html 元素, dwr 会根据 html 元素的 id 进行自动赋值。这种方式也蛮简单方便的。


文章来源:http://www.blogjava.net/magicdoom/archive/2006/03/01/32968.html
分享到:
评论

相关推荐

    20081128XML数据岛[定义].pdf

    XML数据岛是HTML页面中嵌入的XML代码段,它允许网页局部更新,避免...尽管现在有其他更现代的技术如AJAX和JSON,但在早期的Web开发中,XML数据岛是一个重要的进步,为后来的富互联网应用程序(RIA)的发展奠定了基础。

    用XML数据岛创建上下文菜单

    在本文中,我们将探讨如何使用XML数据岛来创建自定义的上下文菜单。 XML数据岛是一种技术,它允许在HTML文档中嵌入XML数据,并通过XML文档对象模型(DOM)进行访问和操作。DOM是XML和HTML文档的一种标准编程接口,...

    xml 数据岛

    XML(eXtensible Markup Language)是一种用于标记数据的语言,它的设计目的是传输和存储数据,而不是显示数据。...通过实践这些“数据岛”,你可以深化对XML及其相关技术的理解,并提升处理和解析XML数据的能力。

    Web设计中如何使用XML数据

    在这个例子中,`&lt;tbody&gt;` 中的 `&lt;tr&gt;` 和 `&lt;td&gt;` 会根据XML数据岛中的 `&lt;member&gt;` 标签数量动态生成,而 `&lt;div&gt;` 则用于提取对应的字段值。 总结来说,XML DSO 提供了一种简便的方法,使得Web设计师能够使用...

    html.rar_XML通讯录

    然而,由于XML数据岛和DMO技术主要基于早期的IE浏览器,因此可能存在跨浏览器兼容性问题,现代Web开发更倾向于使用AJAX(Asynchronous JavaScript and XML)或者现在流行的前端框架如React、Vue等,它们提供了更强大...

    AJAX获得XML节点的方法

    在实际应用中,例如在提供的例子中,XML数据(`stu.xml`)包含学生信息,而HTML页面使用数据岛将XML数据展示在一个表格中。`&lt;xml&gt;`标签定义了数据源,并通过`DATASRC`属性关联到表格。表格的每一行的每个单元格都...

    用Javascript 实现XML 文档数据检索

    本文阐述了基于XML 的数据检索技术, 并介绍了DOM 对XML 文档的操作。最后通 过例子实现用Javascript 的DOM 对XML 文档节点进行检索, 检索结果用XML 数据岛在HTML 页面 中显示。

    XML与Webservice实用参考

    #### 二、XML数据岛应用示例 数据岛是一种在Internet Explorer中使用的技术,它可以将XML数据嵌入到HTML页面中,并通过JavaScript或其他脚本语言进行访问。以下是一个简单的数据岛应用示例: ```xml &lt;?xml version...

    03、第二部分:XML的语言基础.pdf

    **数据岛**: 数据岛是指在XML文档中嵌入非XML数据的方式,常用于嵌入SQL查询或脚本等。 #### 十二、XML的相关标准 **相关标准**: 除了XML本身的标准外,还包括了一系列支持XML处理的其他标准和技术,如XSLT(用于...

    ORACLE+xml+JSP结合

    用ORACLE做的JSP登录,其中包括XML转换,用数据岛技术,学习的好例子

    利用AJAX与数据岛实现无刷新绑定

    在示例中,XML数据岛定义如下: ```xml &lt;xml ID="xmlData" name="xmlData"&gt; &lt;AUTHOR&gt;John Smith &lt;GENERATOR&gt;Visual Notepad &lt;PAGETYPE&gt;Reference &lt;ABSTRACT&gt;Specifies a data island &lt;!-- 更多METADATA...

    XML(Extensible Markup Language)

    - **数据岛技术**:这是一种专为Internet Explorer提供的技术,允许HTML页面中嵌入XML数据,并使用CSS或XSLT对其进行样式化。 #### 解析技术 XML解析主要分为两类: - **DOM (Document Object Model)**:将XML文档...

    javascript操作xml(增删改查)例子代码hta版

    文章中还提到了数据岛的概念,这是IE浏览器中的一个特性,通过它可以将XML数据与HTML页面结合在一起。数据岛可以包含在HTML页面内,并可以作为客户端数据存储使用。这对于前端开发人员来说是一个非常有用的特性,...

    无限菜单之 xml+popup 版(IE5.5+)

    既然大胆假设了一把,那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理...

    xml分页+ajax请求数据源+dom取结果实例代码

    2. **XML数据岛分页**:客户端接收到XML数据后,使用数据岛(Data Islands)技术进行分页显示。数据岛是一种将XML数据嵌入HTML文档中的方法,它允许JavaScript直接访问和操作XML数据,简化了数据处理。在这个例子中...

    XML中文指南

    XML中文指南 全集 包括基础、高级部分...基础包括语法 元素 确认 浏览器 检视 使用CSS 和 XSL 数据岛 解析器;高级部分包括命名空间 CDATA 编码 服务器 HTTP 行为和技术等;实例包括例子和测验 包括部分书籍和XML规范。

Global site tag (gtag.js) - Google Analytics