-、XMLDocument;
有必要说明一下,XMLDocument是flash xml 包内建的,XML和XMLList是顶级类。
另:XMLDocument 继承XMLNode,它可以使用父类的所有方法和属性;
附:XMLDocument的另类创建方法:
var xd:XMLDocument=new XMLDocument();
var str:String="<data pro='a'>b</data><data pro='c'>d</data>";
xd.parseXML(str);
特别强调:parseXML()参数不但可以是String,还可以是XML
另:XMLDocument没有toXMLString()方法;
一) 访问节点名
trace(xd.fistChild.firstChild.nodeName);//a该节点必须是元素节点。
三)访问节点值:(假定没有根节点);
trace(xd.firstChild.firstChild.nodeValue);//b 其实nodeValue可以省略;该节点必须是文本节点。
四)访问节点属性;
trace(xd.firstChild.attributes.pro);//a;
<data pro="a">b</data><data pro="c">d</data>
有了根节点,xd没变,但是xd.firstChild变了;
attributes:属性,注意这里是复数;
五)加载和解析外部XML文档;
//省略加载部分代码;
function co(e:Event):void{
var xd:XMLDocument=new XMLDocument();
xd.ignoreWhite=true;//忽略空白;
xd.parseXML(e.target.data);
trace(xd);
}
六)XMLDocument的高级创建方法;
var xd:XMLDocument=new XMLDocument();
var rootNode:XMLNode=xd.createElement("root");//创建根节点;
var nodeA:XMLNode=xd.createElement("name");//创建子节点;
var nodeB:XMLNode=xd.createElement("name");//创建子节点;
var valA:XMLNode=xd.createTextNode("张三");//创建节点值;
var valB:XMLNode=xd.createTextNode("李四");//创建节点值;
nodeA.appendChild(valA);
nodeB.appendChild(valB);
rootNode.appendChild(nodeA);
rootNode.appendChild(nodeB);
xd.appendChild(rootNode);
trace(xd);
//输出;<root><name>张三</name><name>李四</name></root>
//createElement::创建节点名,用于创建XMLNodeType.ELEMENT_NODE节点名。
//createTextNode::创建节点值,用于创建XMLNodeType.TEXT_NODE节点值;
七)注意事项:
<node>//这是一个节点,有节点名(nodeName)没有
//节点值(nodeValue) nodeType=XMLNodeType.ELEMENT_NODE(或者是1)
我也是节点 //特别需要注意了,这也是一个节点,有节点值没有节点名。
//nodeType=XMLNodeType.TEXT_NODE(或者是3)
</node>
八)其它相关的属性和方法;
docTypeDecl : Object = null
指定有关 XML 文档的 DOCTYPE 声明的信息。
idMap : Object
一个对象,其中包含分配了 id 属性的 XML 的节点。
xmlDecl : Object = null
一个字符串,指定有关文档的 XML 声明的信息。
二、XMLNode
由于XMLDocument继承于XMLNode,因此也把XMLNode的相关属性和方法在此说明一下:
一)属性:
1、 访问节点:
子级或父级节点:firstChild lastChild parentChild
同级节点: nextSibling previousSibling
2、 节点相关:
nodeName:如果含有命名空间,nodeName包含了命名空间名;
localName:不包含命名空间名;
nodeValue:只能访问文本节点,并且可以缺省。
nodeType:一个 nodeType 常数值,对于 XML 元素为 XMLNodeType.ELEMENT_NODE(或数字1),对于文本节点为 XMLNodeType.TEXT_NODE(或数字3)
3、 其它:
attributes : Object
一个对象,其中包含指定的 XMLNode 实例的所有属性
(注意:attributes访问到的是某一个节点的所有属性,而不是所有节点的所有属性)
childNodes : Array
[read-only] 指定的 XMLNode 对象子级的数组。
namespaceURI : String
[read-only] 如果 XML 节点具有前缀,则 namespaceURI 为该前缀 (URI) 的 xmlns 声明的值,通常称为命名空间 URI。
prefix : String
[read-only] XML 节点名称的前缀部分。即命名空间的前辍
二)方法:
appendChild(node:XMLNode):void
将指定的节点追加到 XML 对象的子级列表中。
cloneNode(deep:Boolean):XMLNode
构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。
说明:如果参数deep为 true,则克隆所有子节点,否则不克隆子节点。另,通过克隆出来的节点与原始节点失去所有关联,不再用firstChild nextSibling的属性。
hasChildNodes():Boolean
指示指定的 XMLNode 对象是否具有子节点。
insertBefore(node:XMLNode, before:XMLNode):void
将新的子节点插入到 XML 对象的子级列表中,且在 beforeNode 节点之前。
removeNode():void
从指定 XML 对象的父级中删除该对象。
比如:myXML.firstChild.firstChild.removeNode();//表示把myXML.firstChild.firstChild删除。
d.parseXML(str);
三)访问节点值:(假定没有根节点);
trace(xd.firstChild.firstChild.nodeValue);//b 其实nodeValue可以省略;
四)访问节点属性;
trace(xd.firstChild.attributes.pro);//a;
<data pro="a">b</data><data pro="c">d</data>
有了根节点,xd没变,但是xd.firstChild变了;
attributes:属性,注意这里是复数;
五)加载和解析外部XML文档;
//省略加载部分代码;
function co(e:Event):void{
var xd:XMLDocument=new XMLDocument();
xd.ignoreWhite=true;//忽略空白;
xd.parseXML(e.target.data);
trace(xd);
}
六)XMLDocument的高级创建方法;
var xd:XMLDocument=new XMLDocument();
var rootNode:XMLNode=xd.createElement("root");//创建根节点;
var nodeA:XMLNode=xd.createElement("name");//创建子节点;
var nodeB:XMLNode=xd.createElement("name");//创建子节点;
var valA:XMLNode=xd.createTextNode("张三");//创建节点值;
var valB:XMLNode=xd.createTextNode("李四");//创建节点值;
nodeA.appendChild(valA);
nodeB.appendChild(valB);
rootNode.appendChild(nodeA);
rootNode.appendChild(nodeB);
xd.appendChild(rootNode);
trace(xd);
//输出;<root><name>张三</name><name>李四</name></root>
//createElement::创建节点名,用于创建XMLNodeType.ELEMENT_NODE节点名。
//createTextNode::创建节点值,用于创建XMLNodeType.TEXT_NODE节点值;
七)注意事项:
<node>//这是一个节点,有节点名(nodeName)没有
//节点值(nodeValue) nodeType=XMLNodeType.ELEMENT_NODE(或者是1)
我也是节点 //特别需要注意了,这也是一个节点,有节点值没有节点名。
//nodeType=XMLNodeType.TEXT_NODE(或者是3)
</node>
八)其它相关的属性和方法;
docTypeDecl : Object = null
指定有关 XML 文档的 DOCTYPE 声明的信息。
idMap : Object
一个对象,其中包含分配了 id 属性的 XML 的节点。
xmlDecl : Object = null
一个字符串,指定有关文档的 XML 声明的信息。