XML
XML的全称是可扩展标记语言。XML是一种结构化的信息处理结构,方便读写,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于或供应商的结构化数据。
标记-tag
节点-node
属性-attribute
XML的创建
静态文档
<?xml version=“1.0” encoding=“utf-8”?>
<users> <userid>…</userid>…</users>
内嵌代码
var users:XML= <users><userid>…</userid>…</users>
外部加载
URLRequest/URLLoader/
使用类方法
var xusers:XML = new XML(“<users></users>”);
Xusers.appendChild(<userid>…</userid>);
常用运算符:
. 子访问器
@ 属性标识符
[] 索引访问符
.. 隔代子访问器
{} 以变量的形式当作节点
常用的方法:
XML(): 创建新的XML 对象
attribute():返回属性值
attributes():返回属性列表
Child():列出子项
Children():按顺序列出子项
length():子节点数
prependChild():首位插入新项
appendChild():末尾追加新项
insertChildBefore():在指定的参数1之前插入参数2的元素
insertChildAfter():在指定的参数1之后插入参数2的元素
toString(): 返回子节点内容
toXMLString():; 返回整个xml
基本操作:XML—>字符串
输出XML
toString();
toXMLString();
输出XMLList
toString();
toXMLString();
输出子节点内容
xmlName.nodeName
基本操作:字符串—>XML
var str1:String = '<name>flash</name>';
var xml2:XML = new XML(str1);
trace(xml2.toXMLString());
XML查询—条件检索
节点查询(String):
xmlName.nodeName.(subNodeName==‘value’)
属性查询:
xmlName.nodeName.(@attributeName==‘value‘)
XML查询—数据访问-节点:
子节点数据访问——节点索引值(与数组同)
xmlName.nodeName[i]
孙节点数据访问
xmlName.nodeName[i].elementName
Child()方法——返回有序的XMLList对象
xmlName.child('nodeName')
xmlName.child('nodeName')[i].child(‘elementName’)
XML查询——数据访问-属性
@attributeName
xmlName.nodeName[i].@attributeName
attribute(‘attributeName’)
xmlName.nodeName[i].attribute(‘attributeName‘)
trace(xml1.node[2]);
Attributes()方法:返回给定的XML对象的属性值列表
var xml:XML=<example id='123' color='blue'></example>;
xml.attributes()[i].name()——i=0à”id”; i=1à”color”
删除XML节点元素
删除节点
delete xmlName.nodeName[i];
删除子节点
delete xmlName.nodeName[i].elementName;
删除属性
delete xmlName.nodeName[i].@attributeName;
删除全部节点
var nodes:XMLList = xmlName.nodeName.(@attributeName==‘value');
var len:uint = nodes.length();
for(var i:uint=0; i<len; i++){
delete xml.nodes[0];
}
修改XML节点元素
修改节点内容
xmlName.nodeName[i]=‘someValue’;
修改子节点
xmlName..subNodeName[i]=‘someValue’
修改属性
xmlName.nodeName[i]’;
增加XML节点元素
把结点加到最前面
xmlName.prependChild(newNode)
把结点加到最后面
xmlName. appendChild(newNode)
插入到指定节点之前
xmlName. insertChildBefore(xmlName.nodeName[i], newNode)
插入到指定节点之后
xmlName.insertChildAfter(xmlName.nodeName[i], newNode)
加载外部XML文件
定义网址请求变量(对象)
var req:URLRequest=new URLRequest("sites.xml")
定义网址数据容器
var loader:URLLoader=new URLLoader();
加载数据
loader.load(req);
侦听加载过程事件
loader.addEventListener(flash.events.ProgressEvent.PROGRESS,loading_fn);
侦听加载完成事件
loader.addEventListener(Event.COMPLETE,do1_fn);
处理过程事件
function loading_fn(e) {}
处理完成事件
function do1_fn(e) {}