2009-02-05 51 views
0

我仍然在研究一個特定的RDF文件,但似乎有些東西不適合我。我的RDF文件的代碼如下:工作在一個特定的RDF文件在flex

<?xml version = '1.0"?> 

<rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:dc = "http://purl.org/dc/elements/1.1/" 
xmlns:dp = "http://www.telemed.uniud.it/dp/0.1/" 
xmlns:dcq = "http://purl.org/dc/qualifiers/1.0/" > 


<rdf:Description rdf:about="m021"> 
    <dc:creator>CAB</dc:creator> 
    <dc:title>m021</dc:title> 
    <dc:subject></dc:subject> 
    <dc:date>null</dc:date> 
    <dc:description></dc:description> 
    <dc:identifier>1</dc:identifier> 
    <dc:relation.requires rdf:resource="./20x/m02120x"/> 
    <dc:relation.requires rdf:resource="./10x/m02110x"/> 
    <dc:relation.requires rdf:resource="./5x/m0215x"/> 
    <dc:relation.requires rdf:resource="./2.5x/m0212.5x"/> 
    <dc:relation.requires rdf:resource="preview.jpg"/> 
    <dp:resolution rdf:parseType="Resource"> 
     <dp:unit>micron</dp:unit> 
     <dp:x>0.23235294</dp:x> 
     <dp:y>0.23046875</dp:y> 
    </dp:resolution> 
    <dp:objective rdf:parseType="Resource"> 
     <dp:magnification>20.0</dp:magnification> 
     <dp:na>0.6</dp:na> 
    </dp:objective> 
    <dp:imsize rdf:parseType="Resource"> 
     <dp:x>316</dp:x> 
     <dp:y>236</dp:y> 
    </dp:imsize> 
</rdf:Description> 

<rdf:Description rdf:about="./20x/m02120x"> 
    <dp:type>plane</dp:type> 
    <dp:magnification>20</dp:magnification> 
    <dp:matrix rdf:parseType="Resource"> 
     <dp:xrange>1-103</dp:xrange> 
     <dp:yrange>1-86</dp:yrange> 
    </dp:matrix> 
</rdf:Description> 

</rdf:RDF> 

我已經使用URLLoader加載此文件,並在我的腳本中我正試圖訪問一些屬性。例如,我必須訪問屬性dp:x,嵌套在dp:resolution中,嵌套在rdf:Description中,在我看來,正確的一段代碼是:

//假定'result:XML'是包含我所有的RDF和xmlLabel都有一個標籤

xmlLabel.text ='test:'+ result.Description.resolution.x;

但這段代碼給了我一個空的結果。

我嘗試了不同的(和不優雅的方式)來完成它傳遞下面的行:

xmlLabel.text = '測試:' + result.child(0).child(11).child(1 );

這一段代碼wokrs,給我

我的問題是值0.23235294(如預期):我做錯了什麼調用爆破性質?我還嘗試了「雙點」符號(例如result..Description),但沒有結果。

問題可能是我正在處理的文件不是有效的XML文件?在這種情況下,是否有辦法使我的RDF適應有效的XML以使其工作?

謝謝你的答案

大衛

回答

1

嗨大衛(是的,它是我的,鄭:))。 您的結果爲空的原因是該標籤是在名稱空間中指定的,您必須在訪問標籤時指定它。 你可以找到有用的信息in this flex tutorial

基本上,你必須聲明命名空間的變量,如:

var rdf:Namespace = new Namespace ("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); 
var dp:Namespace = new Namespace ("http://www.telemed.uniud.it/dp/0.1/"); 

,然後訪問節點時,喜歡使用它:

var resolution = result.ref::Description.dp::resolution 
相關問題