0

XMLノード名と属性で大文字/小文字/キャメルケースを無視するトリックを知っている人はいますか?

簡単な例: fooID という名前の XML 属性を含む XML ファイルをクライアントに渡しましたが、クライアントは XML を変更する可能性があり、大文字/小文字の変更や「fooid」の下の属性の追加を認識していません。当然、(AS3 の) 私のパーサーはすべて小文字の属性を無視します。ここでの問題は fooID に含まれる値ではなく、属性名そのものであることに注意してください。何か案は?

4

3 に答える 3

1

xml クエリで RegExp を使用し、大文字と小文字を区別しないようにする

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

于 2013-05-19T11:07:15.477 に答える
0

これは私にとってはうまくいくようです:

var lowerCasePropertyName:String = propertyName.toLowerCase();
var xmlItem:XMLList = xml.*.(attribute("name").toString().toLowerCase()==lowerCasePropertyName);
于 2015-07-17T02:18:12.213 に答える
0

すべてのノードを再帰的にループし、選択したノード名を探してから、オブジェクト グラフを書き出すか、解析された XML を他の方法で保存する、独自の XML パーサーを作成することができます (古い、E4X 以前の方法)。 . これには、許可されたノード名 (疑似コード: if nodename == "fooID" then do something with the node) に対して各ノード名をテストすることが含まれます。各ノードを比較しているため、ノード名と「fooID」の両方を小文字にすることでマッチングを正規化できます。

面倒ですが、うまくいきます。

于 2010-09-11T07:36:20.190 に答える