-、XMLDocument;
有必要说明一下,XMLDocument是flash xml 包内建的,XML和XMLList是顶级类。
另:XMLDocument 继承XMLNode,它可以使用父类的所有方法和属性;
附:XMLDocument的另类创建方法:
var xd:XMLDocument=new XMLDocument();
var str:String="<da
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;
<da
有了根节点,xd没变,但是xd.firstChild变了;
attributes:属性,注意这里是复数;
五)加载和解析外部XML文档;
//省略加载部分代码;
function co(e:Event):void{
var xd:XMLDocument=new XMLDocument();
xd.ignoreWhite=true;//忽略空白;
xd.parseXML(e.target.da
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 声明的信息。
一个对象,其中包含分配了 id 属性的 XML 的节点。
一个字符串,指定有关文档的 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、 其它:
一个对象,其中包含指定的 XMLNode 实例的所有属性
(注意:attributes访问到的是某一个节点的所有属性,而不是所有节点的所有属性)
[read-on
[read-on
[read-on
二)方法:
appendChild(node:XMLNode):void
将指定的节点追加到 XML 对象的子级列表中。
cloneNode(deep:Boolean):XMLNode
构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。
说明:如果参数deep为 true,则克隆所有子节点,否则不克隆子节点。另,通过克隆出来的节点与原始节点失去所有关联,不再用firstChild nextSibling的属性。
指示指定的 XMLNode 对象是否具有子节点。
insertBefore(node:XMLNode, before:XMLNode):void
将新的子节点插入到 XML 对象的子级列表中,且在 beforeNode 节点之前。
从指定 XML 对象的父级中删除该对象。
比如:myXML.firstChild.firstChild.removeNode();//表示把myXML.firstChild.firstChild删除。
d.parseXML(str);
三)访问节点值:(假定没有根节点);
trace(xd.firstChild.firstChild.nodeValue);//b 其实nodeValue可以省略;
四)访问节点属性;
trace(xd.firstChild.attributes.pro);//a;
<da
有了根节点,xd没变,但是xd.firstChild变了;
attributes:属性,注意这里是复数;
五)加载和解析外部XML文档;
//省略加载部分代码;
function co(e:Event):void{
var xd:XMLDocument=new XMLDocument();
xd.ignoreWhite=true;//忽略空白;
xd.parseXML(e.target.da
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 声明的信息。
一个对象,其中包含分配了 id 属性的 XML 的节点。
一个字符串,指定有关文档的 XML 声明的信息。