从包含:(冒号)的xml标记获取数据
我正在使用AIR构建一个应用程序,该应用程序将搜索并显示DeviceArt的缩略图,并以RSS提要的形式显示获取结果的请求URL 为了简单起见,我展示了我唯一有问题的代码 我们可以用这个做标签从包含:(冒号)的xml标记获取数据,xml,actionscript-3,flash,air,rss,Xml,Actionscript 3,Flash,Air,Rss,我正在使用AIR构建一个应用程序,该应用程序将搜索并显示DeviceArt的缩略图,并以RSS提要的形式显示获取结果的请求URL 为了简单起见,我展示了我唯一有问题的代码 我们可以用这个做标签 trace(myxml.channel.item[0].title); 但是对于像媒体这样的标签该怎么办:内容 trace(myxml.channel.item[0].media:content); 但它不起作用 冒号把我弄糊涂了试着用 元素(名称:Object):XMLList 包装{ 导入flas
trace(myxml.channel.item[0].title);
但是对于像媒体这样的标签该怎么办:内容
trace(myxml.channel.item[0].media:content);
但它不起作用
冒号把我弄糊涂了试着用
元素(名称:Object):XMLList
包装{
导入flash.display.Sprite
public class XmlExample extends Sprite {
public function XmlExample() {
var employees:XML =
<employees>
<employee ssn="123-123-1234">
<name first="John" last="Doe"/>
<address>
<street>11 Main St.</street>
<city>San Francisco</city>
<state>CA</state>
<zip>98765</zip>
</address>
</employee>
<employee ssn="789-789-7890">
<name first="Mary" last="Roe"/>
<address>
<street>99 Broad St.</street>
<city>Newton</city>
<state>MA</state>
<zip>01234</zip>
</address>
</employee>
</employees>;
trace(employees.employee[0].address.zip); // 98765
trace(employees.employee[1].@ssn); // 789-789-7890
trace(employees.employee.name); // <name first="John" last="Doe"/>
// <name first="Mary" last="Roe"/>
trace(employees..zip[0]); // 98765
trace(employees..@ssn[1]); // 789-789-7890
trace(employees..name); // <name first="John" last="Doe"/>
// <name first="Mary" last="Roe"/>
trace(employees.employee[0].address.*); // <street>11 Main St.</street>
// <city>San Francisco</city>
// <state>CA</state>
// <zip>98765</zip>
var node:String = "zip";
trace(employees.employee[0].address[node]); // 98765
var attribute:String = "ssn";
trace(employees.employee[1].@[attribute]); // 789-789-7890
for each (var num:XML in employees..@ssn) {
trace(num); // 123-123-1234
} // 789-789-7890
var ssnToFind:String = "789-789-7890";
trace(employees.employee.(@ssn == ssnToFind).toXMLString());
// <employee ssn="789-789-7890">
// <name first="Mary" last="Roe"/>
// <address>
// <street>99 Broad St.</street>
// <city>Newton</city>
// <state>MA</state>
// <zip>01234</zip>
// </address>
// </employee>
}
}
public类XmlExample扩展了Sprite{
公共函数XmlExample(){
var:XML=
主大街11号。
旧金山
加利福尼亚州
98765
博德街99号。
牛顿
文科硕士
01234
;
跟踪(employees.employee[0].address.zip);//98765
trace(employees.employee[1].@ssn);//789-789-7890
跟踪(employees.employee.name);//
//
跟踪(employees..zip[0]);//98765
跟踪(员工..@ssn[1]);//789-789-7890
跟踪(员工..姓名);//
//
跟踪(employees.employees[0].地址。*);//11 Main St。
/旧金山
//CA
// 98765
var节点:String=“zip”;
跟踪(employees.employees[0]。地址[节点];//98765
var属性:String=“ssn”;
跟踪(employees.employee[1].@[attribute]);//789-789-7890
对于每个(员工中的var num:XML..@ssn){
跟踪(num);//123-123-1234
} // 789-789-7890
var ssnToFind:String=“789-789-7890”;
跟踪(employees.employee.(@ssn==ssnToFind.toXMLString());
//
//
//
//博德街99号。
//牛顿
//妈
// 01234
//
//
}
}
}在XML中,冒号用于在完全限定的XML名称中分隔名称空间前缀和本地名称。您可以在文档中搜索有关如何处理XML名称空间的示例 XML名称空间是使用
xmlns
属性在文档中的某个位置声明的。如果有前缀元素(如media:content
),则在您正在读取的标记或祖先标记(通常但不总是根标记)中应该有xmlns:prefix='namespace'
声明(如xmlns:media=“some namespace uri”
)
通过从文件中按前缀读取名称空间,并将其分配给变量,可能可以使其正常工作。然后使用双冒号作为选择器的前缀:
var media:Namespace = myxml.namespace('media');
trace(myxml.channel.item[0].media::content);
首先,如果xml中存在已知名称空间的冒号,那么它就是简单的标记。 因此,从名称空间中读取数据与简单标记没有什么不同。 我可以向您展示一些示例,但是如果您共享xml格式,那么我可以为您编写相应的代码 以下是示例代码:
xmlData.ignoreWhitespace=true;
var awsNS:Namespace = new Namespace("http://www.aws.com/aws");
xmlDataVO.state=xmlData..awsNS::["city-state"];
xmlDataVO.country=xmlData..awsNS::["country"];
xmlDataVO.sunriseHour=xmlData..awsNS::sunrise..awsNS::["hour"].@number;
xmlDataVO.sunriseMinute=xmlData..awsNS::sunrise..awsNS::["minute"].@number;
我的xml格式是这样的
<aws:weather xmlns:aws="http://www.aws.com/aws">
<aws:city-state citycode="64469">Delhi, IN</aws:city-state>
<aws:country>India</aws:country>
<aws:sunrise>
<aws:hour number="7" hour-24="07"/>
<aws:minute number="13"/>
</aws:sunrise>
</aws:weather>
新德里
印度
您没有告诉我冒号我应该如何处理它们我发现xmlns:media=”“我应该这样做吗var media:Namespace=myxml.Namespace(');