Игнорировать регистр имен и атрибутов узлов E4X? - PullRequest
0 голосов
/ 26 января 2010

Кто-нибудь знает хитрость, позволяющую игнорировать верхний / нижний / регистр верблюдов в именах и атрибутах узлов XML?

Быстрый пример: я передаю XML-файл своему клиенту, который содержит атрибут XML с именем fooID, но клиент может изменить XML и - не зная об изменении верхнего / нижнего регистра или добавить атрибут в поле «fooid». Естественно, мой синтаксический анализатор (в AS3) игнорировал бы весь строчный атрибут. Обратите внимание, что значение, содержащееся в fooID, здесь не проблема, а само имя атрибута. Есть идеи?

Ответы [ 3 ]

1 голос
/ 19 мая 2013

используйте RegExp в своем XML-запросе и учитывайте регистр символов

список констант: XMLList = xml. *. (@ Name.toString (). Search (new RegExp ("hello", "i"))! = -1);

0 голосов
/ 17 июля 2015

Мне кажется, это работает:

var lowerCasePropertyName:String = propertyName.toLowerCase();
var xmlItem:XMLList = xml.*.(attribute("name").toString().toLowerCase()==lowerCasePropertyName);
0 голосов
/ 11 сентября 2010

Вы можете написать свой собственный синтаксический анализатор XML (старый способ, предшествующий E4X), в котором вы рекурсивно просматриваете все узлы, ищите имена узлов по вашему выбору, а затем записываете граф объектов или сохраняете проанализированный XML другими способами. Это включает проверку каждого имени узла по любому разрешенному имени узла (псевдокод: if nodename == "fooID" then do something with the node). Так как вы работаете с каждым узлом, вы можете нормализовать сопоставление, указав как nodename, так и «fooID».

Громоздко, но делает свое дело.

...