博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
精通XMLDocument
阅读量:4105 次
发布时间:2019-05-25

本文共 3986 字,大约阅读时间需要 13 分钟。

-、XMLDocument;

有必要说明一下,XMLDocumentflash xml 包内建的,XMLXMLList是顶级类。

另: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>

 

八)其它相关的属性和方法;

: = null

指定有关 XML 文档的 DOCTYPE 声明的信息。

:

一个对象,其中包含分配了 id 属性的 XML 的节点。

: = 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、 其它:

:

一个对象,其中包含指定的 XMLNode 实例的所有属性

(注意:attributes访问到的是某一个节点的所有属性,而不是所有节点的所有属性)

:

[read-only] 指定的 XMLNode 对象子级的数组。

:

[read-only] 如果 XML 节点具有前缀,则 namespaceURI 为该前缀 (URI) xmlns 声明的值,通常称为命名空间 URI

:

[read-only] XML 节点名称的前缀部分。即命名空间的前辍

 

二)方法:

(node:):

将指定的节点追加到 XML 对象的子级列表中。

(deep:):

构造并返回一个类型、名称、值和属性与指定的 XML 对象均相同的新 XML 节点。

说明:如果参数deep true,则克隆所有子节点,否则不克隆子节点。另,通过克隆出来的节点与原始节点失去所有关联,不再用firstChild nextSibling的属性。

():

指示指定的 XMLNode 对象是否具有子节点。

(node:, before:):

将新的子节点插入到 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;

<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>

 

八)其它相关的属性和方法;

: = null

指定有关 XML 文档的 DOCTYPE 声明的信息。

:

一个对象,其中包含分配了 id 属性的 XML 的节点。

: = null

一个字符串,指定有关文档的 XML 声明的信息。

转载地址:http://rrjsi.baihongyu.com/

你可能感兴趣的文章
Grafana + Zabbix --- 部署分布式监控系统
查看>>
Android最佳的开源库集锦
查看>>
用 dpkg 命令在 Debian 系的 Linux系统中管理软件包
查看>>
使用Git Hooks实现开发部署任务自动化
查看>>
如何在 Linux 中将文件编码转换为 UTF-8
查看>>
Android应用内存泄漏的定位、分析与解决策略
查看>>
Android适配难题全面总结
查看>>
Linux下莱特币Litecoin挖矿教程
查看>>
安装Mod_Pagespeed 使 Apache和Nginx性能加速10倍
查看>>
Win10下Hyper-V虚拟机不能联网的解决办法
查看>>
ThinkPad T460S 拆解图 拆解图
查看>>
Chrome 错误代码:ERR_UNSAFE_PORT
查看>>
如何在 Linux 中找出最近或今天被修改的文件
查看>>
CentOS 上的 FirewallD 简明指南
查看>>
ecshop适应PHP7的修改
查看>>
Qt最新的教程合集
查看>>
T460/s 安装Sierra 10.12.2 成功分享……
查看>>
在 Linux 系统下使用 PhotoRec & TestDisk 工具来恢复文件
查看>>
Linux命令行下载工具 aria2 实例
查看>>
Installing Imagick for PHP 7 on Windows 10
查看>>