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了。
分享到:
相关推荐
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 ...
它是纯JavaScript的一文件XML文档类,只依赖于出色的解析器。 有关为什么我要编写此类的更多信息,请参见。发行说明有关详细信息,请参见 (使用构建)。安装npm install xmldoc或者只是下载存储库,然后将其直接...
C#实现对xml文件的读取和写入操作 XmlNode xn = xmlDoc.SelectSingleNode("DBConnection"); XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; ...
本文实例讲述了JS实现加载和读取XML文件的方法。分享给大家供大家参考,具体如下: 有时在开发时用到 JS 加载和读取XML文件的情况,写下提供参考,这里主要是分两步完成: 1. JS加载XML文件 步骤一般为(1),建立 ...
这里讲述的添加xml文档内容,从上一篇《DOM基础及php读取xml内容操作的方法》继续,代码如下: 复制代码 代码如下:<?php //1、创建一个DOMDocument对象。该对象就表示 xml文件 $xmldoc = new DOMDocument(); //2...
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....
使用XmlDocument或XDocument创建xml文件,具体内容如下 需引用:System.Xml; System.Xml.Linq; 1.使用XmlDocument创建xml(入门案例) static void Main(string[] args) { //使用XmlDocument创建xml XmlDocument...
学习QT 的xml的参考程序哒哒哒哒哒哒多多多多多多多多多多多多多.
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("temp.xml"); 对节点的增删改查
XmlDocument xmldoc= new XmlDocument(); xmldoc.Load(filename); //得到顶层节点列表 XmlNodeList topM=xmldoc.DocumentElement.ChildNodes; foreach(XmlElement element in topM) { if(eleme
xmlDoc.load("stu.xml"); //alert(xmlDoc.xml); //显示数据 function show(){ var vbo = document.getElementById("s").value; if(vbo=="显示学生信息"){ document.getElementById('info')....
对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:“除了累死程序员没什么好处。”,言归正传。firefox不支持ie中的ActiveXObject...
DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或...
javascript 支持多参数 多语言 读取xml信息 实现统一接口,快速读取xml,兼容多个浏览器
string JSON = XmlToJSON.Converter.XmlToJSON(xmlDoc); 示例: XmlDocument doc = new XmlDocument(); //doc.LoadXml(@"<root>aaa</root>"); doc.Load(@"C:\xxx.xml"); // Convert XML to a JSON string string ...
function CheckAll(form)根据name=chkAll...function ImportXML(xmlDoc,alertString)导入XML模板文件 function ExportFile()导出模板,并命名模板 function simOptionClick4IE(form)模拟IE下点击select的option单击事件
生成XML string[] strxml={"1","2","3"}; string[] strname = {... XmlDocument xmlDoc = new XmlDocument(); // 添加XML声明 XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "");
XML Markdown兼容性一个小型可执行文件,可从Visual Studios XML文档中删除开头的空白,以使内容与空白有效的格式(例如Markdown)兼容。 该工具旨在解决在 (通过 )和等工具中使用Visual Studio以Markdown形式生成...
已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1、插入节点 往节点中插入一个节点: 代码如下:XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(“bookstore.xml”); XmlNode root=xmlDoc....