我正在使用AIR构建一个应用程序,它将搜索并显示deviantART的缩略图请求URL以获取RSS源形式的resuts我得到以下内容 为简单起见,我正在展示我有问题的唯一代码
我们可以将它用于标记
trace(myxml.channel.item[0].title);
但是对于媒体这样的标签怎么做:内容
trace(myxml.channel.item[0].media:content);
但它不起作用 冒号让我感到困惑
答案 0 :(得分:3)
首先,如果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>
答案 1 :(得分:0)
冒号在XML中用于在完全限定的 XML名称中将名称空间前缀与本地名称分开。您可以在文档中搜索有关如何处理XML命名空间的示例。
使用xmlns
属性在文档中的某处声明XML命名空间。如果有前缀元素(例如media:content
),则应在标记中添加xmlns:prefix='namespace'
声明(如xmlns:media="some-namespace-uri"
),并在祖先标记中读取或(通常,但并非总是如此。
您可以通过从文件中读取命名空间并将其分配给变量来使其工作。然后使用双冒号为选择器添加前缀:
var media:Namespace = myxml.namespace('media');
trace(myxml.channel.item[0].media::content);
答案 2 :(得分:-1)
尝试使用 XML.elements(名称:对象):XMLList中
包{ import 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>
}
}
}