Tôi đã thấy các phương pháp sau được sử dụng trong một số ví dụ trực tuyến, nhưng chưa tìm thấy bất kỳ tài liệu nào về cách phân tích cú pháp nguồn cấp dữ liệu XML được khuyến nghị.Cách phân tích cú pháp nguồn cấp dữ liệu XML được khuyến nghị với nhiều không gian tên với ActionScript 3.0 là gì?
Phương pháp 1:
protected function xmlResponseHandler(event:ResultEvent):void
{
var atom:Namespace = new Namespace("http://www.w3.org/2005/Atom");
var microsoftData:Namespace = new Namespace("http://schemas.microsoft.com/ado/2007/08/dataservices");
var microsoftMetadata:Namespace = new Namespace("http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
var ac:ArrayCollection = new ArrayCollection();
var keyValuePairs:KeyValuePair;
var propertyList:XMLList = (event.result as XML)..atom::entry.atom::content.microsoftMetadata::properties;
for each (var properties:XML in propertyList)
{
keyValuePairs = new KeyValuePair(properties.microsoftData::FieldLocation, properties.microsoftData::Locationid);
ac.addItem(keyValuePairs);
}
cb.dataProvider = ac;
}
Cách 2:
protected function xmlResponseHandler(event:ResultEvent):void
{
namespace atom = "http://www.w3.org/2005/Atom";
namespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
namespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
use namespace d;
use namespace m;
use namespace atom;
var ac:ArrayCollection = new ArrayCollection();
var keyValuePairs:KeyValuePair;
var propertyList:XMLList = (event.result as XML)..entry.content.properties;
for each (var properties:XML in propertyList)
{
keyValuePairs = new KeyValuePair(properties.FieldLocation, properties.Locationid);
ac.addItem(keyValuePairs);
}
cb.dataProvider = ac;
}
Phương pháp 3:
protected function xmlResponseHandler(event:ResultEvent):void
{
var ac:ArrayCollection = new ArrayCollection();
var keyValuePairs:KeyValuePair;
var propertyList:XMLList = (event.result as XML)..*::entry.*::content.*::properties;
for each (var properties:XML in propertyList)
{
keyValuePairs = new KeyValuePair(properties.*::FieldLocation, properties.*::Locationid);
ac.addItem(keyValuePairs);
}
cb.dataProvider = ac;
}
mẫu thức ăn chăn nuôi XML:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<feed xml:base="http://www.test.com/Test/my.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title type="text">Test_Locations</title>
<id>http://www.test.com/test/my.svc/Test_Locations</id>
<updated>2010-04-27T20:41:23Z</updated>
<link rel="self" title="Test_Locations" href="Test_Locations" />
<entry>
<id>1</id>
<title type="text"></title>
<updated>2010-04-27T20:41:23Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Test_Locations" href="http://www.test.com/id=1" />
<category term="MySQLModel.Test_Locations" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:FieldLocation>Test Location</d:FieldLocation>
<d:Locationid>test0129</d:Locationid>
</m:properties>
</content>
</entry>
<entry>
<id>2</id>
<title type="text"></title>
<updated>2010-04-27T20:41:23Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Test_Locations" href="http://www.test.com/id=2" />
<category term="MySQLModel.Test_Locations" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:FieldLocation>Yet Another Test Location</d:FieldLocation>
<d:Locationid>test25</d:Locationid>
</m:properties>
</content>
</entry>
</feed>