忽略E4X节点名称和属性的大小写?

时间:2010-01-26 14:40:28

标签: xml actionscript-3 actionscript case e4x

有没有人知道忽略XML节点名称和属性上/下/ camelcase的技巧?

一个简单的例子:我给我的客户端提供了一个XML文件,其中包含一个名为fooID的XML属性,但客户端可以更改XML,并且 - 不知道大写/小写更改或在'fooid'下添加属性。当然,我的解析器(在AS3中)会忽略全部小写属性。请注意,fooID中包含的值不是此处的问题,而是属性名称本身。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

在xml查询中使用RegExp,并使其不区分大小写

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

答案 1 :(得分:0)

您可以编写自己的XML解析器(旧的,前E4X方式),在其中递归遍历所有节点,查找您选择的节点名称,然后写出对象图或存储解析的XML在其他方面。这涉及针对任何允许的节点名称测试每个节点名称(伪代码:if nodename == "fooID" then do something with the node)。因为你在每个节点上都是iffing,你可以通过小写nodename和“fooID”来规范化匹配。

很麻烦,但有诀窍。

答案 2 :(得分:0)

这似乎对我有用:

var lowerCasePropertyName:String = propertyName.toLowerCase();
var xmlItem:XMLList = xml.*.(attribute("name").toString().toLowerCase()==lowerCasePropertyName);