0

プロパティ名が大文字で書かれているかどうかに関係なく、xml タグのプロパティを取得するにはどうすればよいですか?

現在、私は次のようなことをしています:

myXML = new XML(...);
if(myXML.@PROPERTYNAME.length())
    //...do something with myXML.@PROPERTYNAME...
if(myXML.@propertyname.length())
    //...do the same thing with myXML.@propertyname...

しかし、プロパティの記述方法に関係なく、プロパティをキャプチャする簡単な方法があると思いますか? どのように?

4

2 に答える 2

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、属性 AND 属性) であるだけではない場合、これは面倒になり、役に立ちません。

正規表現を使用してアイデアをさらに推し進めることができるかもしれませんが、残念ながら私は正規表現が得意ではありません (この状況で使用できるかどうかさえわかりません)。

于 2012-06-26T14:26:11.143 に答える
0

正規表現を使用しない理由:

const list:XMLList = xml.*.(@name.toString().search( new RegExp("hello") )!= -1);
于 2013-05-19T11:04:43.967 に答える