2012-06-24 71 views
0

如何檢索xml標記的屬性,而不管屬性名稱是否用大寫字母書寫?AS3 E4X獲取獨立於標記大寫的標記屬性

目前,我做這樣的事情:

myXML = new XML(...); 
if([email protected]()) 
    //...do something with [email protected] 
if([email protected]()) 
    //...do the same thing with [email protected] 

但我想有捕捉到獨立的,他們是如何寫性能更簡單的方法?怎麼樣?

+0

可能重複(http://stackoverflow.com/questions/2140055/ignoring-case-on-e4x -node-名稱和特性)。 –

回答

0

最好的解決方案是爲你的XML設置一個標準並堅持下去,這樣你的屬性就形成了一致。如果這不是一個選項,那麼你可以做多個搜索。不是最漂亮的解決方案,但可能會完成這項工作。

將屬性名稱作爲String傳遞給以大小寫形式搜索它並返回組合結果的方法。

private function onLoaded(e:Event):void 
    { 
     xml = new XML(e.target.data); 

     var list:XMLList = getNodesByAttribute("att"); 
     trace(list[1]); 
    } 

    private function getNodesByAttribute(attributeID:String):XMLList 
    { 
     var list:XMLList = ([email protected][attributeID.toLowerCase()]) + ([email protected][attributeID.toUpperCase()]); 
     return list; 
    } 

如果你的屬性,不僅所有的上限和全部小寫(ATTRIBUTE,屬性和屬性),那麼這將導致混亂和無助。

也許你可以使用regular expression進一步推動這個想法,但我恐怕我不擅長正則表達式(甚至不確定它是否可以在這種情況下使用)。

0

爲什麼不使用REG EXP:?忽略對E4X節點名稱和屬性本案中]

const list:XMLList = xml.*.(@name.toString().search(new RegExp("hello"))!= -1);