AS3中XML用法举例

/****************************************************************************************/
var sXML:XML=new XML();

sXML=<ro>
         <information>
       <name>zhongqi</name>
    <age>58</age>
    <province></province>
   </information>
   <Address>
       <addr id='001'>Beijing</addr>
    <addr id='002'>ShangHai</addr>
    <addr id='003'>Shenzhen</addr>
   </Address>
     </ro>

trace("输出");
trace(sXML.information.age);
trace(sXML.Address.addr[1]);
trace(sXML.Address.addr[2].@id);

输出
58
ShangHai
003

/***************************************************************************************/
创建的方式:
var sXML:XML=new XML();
sXML=<v><c>1</c><s>2</s></v>

var sXML:XML=new XML(<v><c>1</c><s>2</s></v>);

/***************************************************************************************/
调用属性:
var sXML:new XML(
<vegetable>
  <cabbage id='001' price='2.5'>白菜</cabbage>
  <cucumber id='002' price='1.6'>黄瓜</cucumber>
</vegetable>
);
sXML.cabbage.@price
sXML.cucumber.@price

/************************************************************************************/
调用多个相同标签的属性:
var sXML:XML=new XML();
sXML=<ro>
       <vegetable>白菜</vegetable>
       <vegetable>黄瓜</vegetable>
       <vegetable>葱</vegetable>
     </ro>
sXML.vegetable[0]
sXML.vegetable[1]
sXML.vegetable[2]

/****************************************************************************/
将存储变量的值传递到XML对象中去
var sXML:XML=new XML();
var cabbage:String="白菜";
var cucumber:String="黄瓜";
var shallot:String="葱";
var garlic:String="蒜";
sXML=<ro>
    <vegetable>{cabbage}</vegetable>
    <vegetable>{cucumber}</vegetable>
    <vegetable>{shallot}</vegetable>
    <vegetable>{garlic}</vegetable>
    </ro>

输出指定条件的元素值:
var sXML:XML=new XML();
sXML=<ro>
      <pro1 id='001'>
       <vegetable>白菜</vegetable>
       <vegetable>黄瓜</vegetable>
       <vegetable>葱</vegetable>
      </pro1>
      <pro1 id='002'>
       <vegetable>白菜</vegetable>
       <vegetable>黄瓜</vegetable>
       <vegetable>葱</vegetable>
      </pro1>
     </ro>
sXML.pro1.(@id='001').vegetable[0]
/******************************************************************/
appendChild()
var sXML:XML=new XML();

sXML=<information>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
     </information>
  

sXML.appendChild(<Email>****@***.com</Email>);
结果:
     <information>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
       <Email>****@***.com</Email>
     </information>

prependChild()
同样的如果prependChild(<Email>****@***.com</Email>);
结果是:
    <information>
       <Email>****@***.com</Email>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
     </information>

***********************************************************************
child方法:
sXML=<information>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
     </information>
sXML.child("*");输出带标签,所有信息
sXML.child(0);
SXML.child(1);
sXML.child(2);

**********************************************************************
children()
sXML=<information>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
     </information>
sXML.children()[0]
sXML.children()[1]
***********************************************************************
insertChildAfter()方法
sXML=<information>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
     </information>
sXML.insertChildAfter(sXML.Name,<book>sqlbook</book>);
结果是:
sXML=<information>
       <name>zhongqi</name>
       <book>sqlbook</sqlbook>
       <age>58</age>
       <province></province>
     </information>
insertChildBefore()同理

************************************************************************
replace方法:
replace(ob:Object,va:XML):XML
sXML=<information>
       <name>zhongqi</name>
       <age>58</age>
       <province></province>
     </information>
sXML.replace(0,<NAME>002</NAME>);
结果是:

sXML=<information>
       <NAME>zhongqi</NAME>
       <age>58</age>
       <province></province>
     </information>

**********************************************************************
setChildren()
attributes()
attribute()

 

========================================================

ActionScript3.0 与服务器通信相关的类

URLVariables:封装名值对,请求参数
URLRequest:封装请求的路径
navigateToURL(url):发送请求
URLLoader:封装URL,可以取得服务器端写回的数据

<think>嗯,用户问的是如何获取XML中的内容。我需要先回想一下Python中处理XML的常用库。常见的应该是xml.etree.ElementTree,还有可能用到lxml或者xml.dom这些模块。不过ElementTree是标准库里的,比较方便,所以应该先介绍这个。 首先,要解析XML文件,可能需要用ET.parse()来加载文件,或者用ET.fromstring()解析字符串。然后遍历元素,可以通过find、findall或者iter来查找特定的标签。属性的话,可以通过元素的attrib字典获取。文本内容则是元素的text属性。 然后,可能需要举例说明。比如一个简单的XML结构,如何读取根节点,遍历子节点,提取属性和文本。代码示例会比较直观。比如解析一个包含country的XML,获取每个country的name属性和rank子元素的文本。 另外,可能需要提到XPath的使用,ElementTree支持简单的XPath查询,比如.findall(&#39;.//rank&#39;)来查找所有rank元素。但XPath功能在标准库中可能有限,这时候可以提到lxml库更强大的XPath支持,不过用户可能更倾向于标准库的方案。 还有,处理命名空间的情况,可能需要处理带有命名空间的标签,这时候在查找元素时需要加上命名空间的前缀。比如{&#39;ns&#39;: &#39;namespace-url&#39;},然后在find的时候使用ns:tag这样的形式。 另外,可能需要提醒常见的错误,比如XML格式不正确导致的ParseError,或者查找不存在的元素返回None,导致访问属性或文本时的错误。异常处理也是需要考虑的部分。 用户可能还想知道如何修改XML内容,或者构建XML结构,不过问题只问获取内容,所以暂时不需要涉及这部分。但可能后续问题会提到。 然后,相关问题应该围绕XML处理的更多细节,比如解析大文件用什么方法,如何处理命名空间,解析和迭代的差异,以及用其他库如lxml的区别。这样用户可以根据问题进一步学习。</think><< 在Python中获取XML内容主要通过xml.etree.ElementTree模块实现。以下是具体方法和示例代码: 1. 解析XML文件 使用ElementTree.parse()加载XML文件: ```python import xml.etree.ElementTree as ET tree = ET.parse(&#39;example.xml&#39;) root = tree.getroot() ``` 2. 解析XML字符串 使用ElementTree.fromstring()处理字符串: ```python xml_data = &#39;&#39;&#39; <root> <country name="Singapore"> <rank>4</rank> <year>2023</year> </country> </root> &#39;&#39;&#39; root = ET.fromstring(xml_data) ``` 3. 遍历XML元素 示例XML结构: ```xml <data> <country name="Singapore"> <rank>4</rank> <year>2023</year> </country> <country name="Malaysia"> <rank>68</rank> <year>2023</year> </country> </data> ``` 获取内容的三种方式: ```python # 遍历所有子元素 for child in root: print(child.tag, child.attrib) # 通过迭代器查找 for country in root.iter(&#39;country&#39;): name = country.get(&#39;name&#39;) rank = country.find(&#39;rank&#39;).text print(f"{name}: {rank}") # 使用XPath查找 for rank in root.findall(&#39;.//rank&#39;): print(rank.text) ``` 4. 获取元素属性 ```python for country in root.findall(&#39;country&#39;): print(country.get(&#39;name&#39;)) # 获取name属性 ``` 5. 获取文本内容 ```python for year in root.iter(&#39;year&#39;): print(year.text) # 获取元素文本 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值