`

利用xmlDoc读取xml文件构建ExtJS Tree

阅读更多

     ExtJS的Tree控件利用TreeNode构建内置的数据,在client/Server的结构中,利用TreeLoader从server端获得Tree中的数据,最终显示。在实际的生产环境中,大量的情况是用TreeLoader来获得这些数据,数据的默认格式是Json格式。在实际的生产中,有时利用xml作为数据源,在ExtJS自带的例子中,有XMLTreeLoader的例子,扩展TreeLoader,实现xml格式数据的加载,但是,当不利用server时,则无法加载xml的数据源。

      下面通过利用xmlDoc加载本地的xml文件(也可以通过XMLHttpRequest加载远程的xml),进行ExtJS的tree构建。 

首先是定义要加载的xml文件:book.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>

 <book category="children">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
 </book>

 <book category="cooking">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
 </book>

 <book category="web" cover="paperback">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
 </book>

 <book category="web">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
 </book>
</bookstore>   

   通过xmlDoc加载book.xml文件,在html文档中,形成xmlDoc对象:

function loadXMLDoc(dname)
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try
  {
  xmlDoc.async=false;
  xmlDoc.load(dname);
  return(xmlDoc);
  }
catch(e) {alert(e.message)}
return(null);
}

 然后再Ext.onReady函数中构建整个tree的结构并显示:

Ext.onReady(function() {

	xmlDoc = loadXMLDoc("book.xml");
	x = xmlDoc.documentElement.childNodes;

	var rootNode = new Ext.tree.TreeNode( { // 1
				text : "bookStore",
				expanded : true
			});

	for (i = 0; i < x.length; i++) {
		if (x[i].nodeType == 1) {
			var child = new Ext.tree.TreeNode({
				text:x[i].getAttributeNode("category").nodeValue,
				expanded:true
			});
			rootNode.appendChild(child);
			y = x[i].childNodes;
			for (j = 0; j < y.length; j++) {
				if (y[j].nodeType == 1) {
					var gradonson = new Ext.tree.TreeNode({
						text:y[j].childNodes[0].nodeValue,
						leaf:true
					});
					child.appendChild(gradonson);
				}
			}
		}
	}


	var tree = {
		title : 'tree',
		width : '12%',
		region : 'west',
		xtype : 'treepanel',
		autoScroll : true,
		root : rootNode
	};

	var panel2 = {
		region : 'center',
		title : 'Plain Panel 2',
		html : 'Panel with __tag_27$24_no__tag_27$29_ xtype specified'
	};

	new Ext.Viewport( {
		layout : 'border',
		items : [ tree, panel2 ]
	});

});

 

就可以生成利用xml文件定义的ExtJS Tree了。

分享到:
评论
2 楼 sunshinejava 2012-07-17  
  谢谢  终于找到一个可以跑得通的了
1 楼 Nancy771959506 2011-03-31  
非常棒啊!!!

相关推荐

    vb6XML读写

    vb中读写XML文件实例Dim XMLDoc As DOMDocument Dim root As IXMLDOMNode Dim xlst As IXMLDOMNodeList, xlst1 As IXMLDOMNodeList Dim xn As IXMLDOMNode Dim xnf As IXMLDOMNode Dim xe As IXMLDOMElement Set ...

    xmldoc:用于JavaScript的轻量级XML文档类

    它是纯JavaScript的一文件XML文档类,只依赖于出色的解析器。 有关为什么我要编写此类的更多信息,请参见。发行说明有关详细信息,请参见 (使用构建)。安装npm install xmldoc或者只是下载存储库,然后将其直接...

    C#读写xml文件Demo

    C#实现对xml文件的读取和写入操作 XmlNode xn = xmlDoc.SelectSingleNode("DBConnection"); XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; ...

    JS实现加载和读取XML文件的方法详解

    本文实例讲述了JS实现加载和读取XML文件的方法。分享给大家供大家参考,具体如下: 有时在开发时用到 JS 加载和读取XML文件的情况,写下提供参考,这里主要是分两步完成: 1. JS加载XML文件 步骤一般为(1),建立 ...

    通过php添加xml文档内容的方法

    这里讲述的添加xml文档内容,从上一篇《DOM基础及php读取xml内容操作的方法》继续,代码如下: 复制代码 代码如下:&lt;?php //1、创建一个DOMDocument对象。该对象就表示 xml文件 $xmldoc = new DOMDocument(); //2...

    xml读写,vb2008

    vn.net 2008 的xml读写 'Dim xnl As XmlNode = xmldoc.SelectSingleNode("items/fnode") '读取单个节点 'Dim xe As XmlElement = CType(xnl, XmlElement) 'Trace.WriteLine(xnl("id").InnerText) 'Trace....

    C#使用XmlDocument或XDocument创建xml文件

    使用XmlDocument或XDocument创建xml文件,具体内容如下 需引用:System.Xml; System.Xml.Linq; 1.使用XmlDocument创建xml(入门案例) static void Main(string[] args) { //使用XmlDocument创建xml XmlDocument...

    01xmldoc_qtxml例子_

    学习QT 的xml的参考程序哒哒哒哒哒哒多多多多多多多多多多多多多.

    。net xml文件操作大全

    XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("temp.xml"); 对节点的增删改查

    读写xml所有节点个人小结 和 读取xml节点的数据总结

     XmlDocument xmldoc= new XmlDocument(); xmldoc.Load(filename); //得到顶层节点列表 XmlNodeList topM=xmldoc.DocumentElement.ChildNodes; foreach(XmlElement element in topM) { if(eleme

    js操作xml大全实例码

    xmlDoc.load("stu.xml"); //alert&#40;xmlDoc.xml&#41;; //显示数据 function show(){ var vbo = document.getElementById("s").value; if(vbo=="显示学生信息"){ document.getElementById('info')....

    xml 读、写、操作以及样式

    对xml文档的读写操作 //初始化文档模型 System.Xml.XmlDocument doc = new XmlDocument(); //加载xml文档 doc.Load(Server.MapPath("XmlDoc/XMLFile.xml")); //获取文档的根 System.Xml.XmlNode Element = ...

    firefox中JS读取XML文件

    firefox中JS读取XML文件 在网上搜“firefox中JS读取XML文件”的方法,找了半天,好多都是问了没人答的。看到一堆程序员在抱怨firefox:“除了累死程序员没什么好处。”,言归正传。firefox不支持ie中的ActiveXObject...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或...

    javascript 支持多参数 多语言 读取xml信息

    javascript 支持多参数 多语言 读取xml信息 实现统一接口,快速读取xml,兼容多个浏览器

    将XML转为JSON格式字符串

    string JSON = XmlToJSON.Converter.XmlToJSON(xmlDoc); 示例: XmlDocument doc = new XmlDocument(); //doc.LoadXml(@"&lt;root&gt;aaa&lt;/root&gt;"); doc.Load(@"C:\xxx.xml"); // Convert XML to a JSON string string ...

    checkbox全选与全不选 xml解析导入与导出 IE下点击select的option单击事件

    function CheckAll(form)根据name=chkAll...function ImportXML(xmlDoc,alertString)导入XML模板文件 function ExportFile()导出模板,并命名模板 function simOptionClick4IE(form)模拟IE下点击select的option单击事件

    生成XML文件

    生成XML string[] strxml={"1","2","3"}; string[] strname = {... XmlDocument xmlDoc = new XmlDocument(); // 添加XML声明 XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "");

    xmldoc-markdown-compat:规范化由Visual Studio生成的Xml文档中的领先空白,以更好地使用纯文本格式(例如Markdown)

    XML Markdown兼容性一个小型可执行文件,可从Visual Studios XML文档中删除开头的空白,以使内容与空白有效的格式(例如Markdown)兼容。 该工具旨在解决在 (通过 )和等工具中使用Visual Studio以Markdown形式生成...

    C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

    已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1、插入节点 往节点中插入一个节点: 代码如下:XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(“bookstore.xml”); XmlNode root=xmlDoc....

Global site tag (gtag.js) - Google Analytics