1.定位元素
1.1XML中搜索元素是根据元素名称及层次关系来确定的,如果用户知道需要的元素所在位置可以直接定位.
格式:XML对象.元素所在位置;
1.2如果用户不是很清楚的知道元素的所在位置可以用".."方式.".."表示中间过程不清楚,采用搜索的方式查找(效率比较低);
格式:XML对象..搜索的元素;
1.3XML中经常会有相同的元素名称,可以用下标来确定具体的元素.
格式:XML对象.元素[下标];

Code
public function SearchElement():void
{
var example:XML=<items>
<item>
<name>Apple</name>
<color>red</color>
</item>
<item>
<name>Orange</name>
<color>orange</color>
</item>
</items>;
//定位
Alert.show("定位:" + example.item.name);
//搜索
Alert.show("搜索:" + example..name);
/*上面俩个返回的结果都是一样
<name>Apple</name>
<name>Orange</name>
* */
//下标
Alert.show("下标:" + example.item[0].name);
//返回Apple
}
2.读取元素内容
格式:XML对象.XML元素.toString();

Code
public function ReadElementContent():void
{
var book:XML=<book>
<title>Flex 程序设计</title>
</book>;
var title:String=book.title.toString();
Alert.show(title);
//返回Flex 程序设计
}
3.读取属性值
3.1使用"@"操作符读取属性值
格式:XML对象名.元素名.@属性名;
3.2使用attribute方法读取属性值
格式:XML对象名.元素名.attribute(属性名);
3.3使用attributes方法读取全部属性值:用户可以根据下标来区分同一元素下的属性
格式:XML对象名.元素名.attributes()[i];

Code
public function ReadElementAttribute()
{
var fruit:XML=<fruit name="Apple" color="red" />;
//返回red
Alert.show(fruit.@color);
//返回 Apple red
Alert.show(fruit.@*);
//返回red
Alert.show(fruit.attribute("color"));
//返回red
Alert.show(fruit.attributes()[1]);
}
4.删除元素和属性:使用delete语句可以删除XML中的元素和属性
格式:delete XML对象.元素;
delete XML对象.元素.@属性;

Code
public function DeleteElement()
{
var example:XML=<example>
<fruit color="red">Apple</fruit>
<vagetable color="Green">Broccoli</vagetable>
<dairy color="White">Milk</dairy>
</example>;
delete example.fruit.@color;
delete example.dairy;
delete example.vagetable.text()[0];
Alert.show(example);
/*返回:
<example>
<fruit>Apple</fruit>
<vagetable color="Green"/>
</example>
* */
var example2:XML=<example>
<fruit color="red">Apple</fruit>
<vagetable color="Green">Broccoli</vagetable>
<dairy color="White">Milk</dairy>
</example>;
var attributes:XMLList=example2.fruit.@*;
for (var i:int=attributes.length() - 1; i >= 0; i--)
{
delete attributes[i];
}
Alert.show(example2);
/*返回:
*
<example>
<fruit>Apple</fruit>
<vagetable color="Green">Broccoli</vagetable>
<dairy color="White">Milk</dairy>
</example>
*/
}
5.加载XML文件
1.创建指向外部XML文件的URLRequest对象:该对象在falsh.net包里.
格式:var URLRequest对象:URLRequest=new URLRequest(外部XML文件地址);
2.添加对"Event.COMPLETE"状态的监听.当然URLLoad对象加载XML完成后会触发"Event.COMPLETE"状态,用户需要手工添加对该状态监听.
格式:URLLoad变量名.addEventListener(Event.COMPLETE,处理函数名);
3.使用Load方法开始加载XML.
格式:URLLoad变量名.Load(URLRequest对象);

Code
package Test
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import mx.controls.Alert;
public class LoadXml extends Sprite
{
public function LoadXml()
{
Alert.show("1");
var loader:URLLoader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, handleComplete);
Alert.show("2");
loader.load(new URLRequest("example.xml"));
Alert.show("3");
}
private function handleComplete(event:Event):void
{
try
{
Alert.show("4");
var example:XML=new XML(event.target.data);
Alert.show(example);
}
catch (e:TypeError)
{
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?