如何检索xml标记的属性,而不管属性名是否以大写字母书写?
目前我做的事情如下:
myXML = new XML(...);
if(myXML.@PROPERTYNAME.length())
//...do something with myXML.@PROPERTYNAME...
if(myXML.@propertyname.length())
//...do the same thing with myXML.@propertyname...
但我想有一种更简单的方法来捕捉属性,而不管它们的编写方式如何?怎么样?
答案 0 :(得分: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 = (xml..@[attributeID.toLowerCase()]) + (xml..@[attributeID.toUpperCase()]);
return list;
}
如果你的属性不仅是全部大写和全部小写(ATTRIBUTE,属性和属性),那么这将变得混乱而且无济于事。
也许你可以使用regular expression进一步推动这个想法,但我担心我不擅长正则表达式(甚至不确定它是否可以在这种情况下使用)。
答案 1 :(得分:0)
为什么不使用reg exp:
const list:XMLList = xml.*.(@name.toString().search( new RegExp("hello") )!= -1);