有谁知道忽略XML节点名称和属性上的upper/lower/camelcase的技巧吗?
一个简单的例子:我给我的客户一个XML文件,其中包含一个名为fooID的XML属性,但客户可以更改XML,并且-不知道大小写的更改或在'fooid‘下添加属性。自然,我的解析器(在AS3中)会忽略全部小写属性。注意,fooID中包含的值不是这里的问题,而是属性名本身。有什么想法吗?
发布于 2013-05-19 11:07:15
在xml查询中使用RegExp,并使其不区分大小写。
const list:XMLList = xml.*.(@name.toString().search( new RegExp("hello","i") )!= -1);
发布于 2010-09-11 07:36:20
您可以编写自己的XML解析器(旧的、E4X之前的方式),递归地遍历所有节点,查找您选择的节点名,然后写出对象图或以其他方式存储解析后的XML。这涉及到针对任何允许的节点名测试每个节点名(伪代码:if nodename == "fooID" then do something with the node
)。因为您对每个节点都进行了检查,所以可以通过降低nodename和"fooID“的大小写来标准化匹配。
虽然很麻烦,但确实很有用。
发布于 2015-07-17 02:18:12
这似乎对我很有效:
var lowerCasePropertyName:String = propertyName.toLowerCase();
var xmlItem:XMLList = xml.*.(attribute("name").toString().toLowerCase()==lowerCasePropertyName);
https://stackoverflow.com/questions/2140055
复制