XML, namespaces and E4X

心不动则不痛 提交于 2020-01-04 02:11:08

问题


Can someone explain me what exactly namespaces (xmlns="...") in XML are for and how they have to be used in navigating an XML using E4X (..preferrably in ActionScript 3)?

I fail to fully understand their purpose and usage.


回答1:


In theory, XML namespaces are used to avoid conflict with tag names. So I can create a namespace that contains a tag named "mytag" and someone else creates a different namespace with the same tag "mytag" and there won't be any conflict. Each "mytag" tag will be clearly differentiated.

In practice, I found that XML namespaces are pretty much useless (how often do you have two developers creating tag for the same XML file?) and just make the parsing annoyingly difficult.

In EX4, you'll need to get the namespace, then prefix each tag with that namespace. So, for example, if you want to access the tag <somenamespace::somename> you will write:

var somenamespace:Namespace = xml.namespace("somenamespace");
var sometag:XML = somenamespace::somename[0];

If you search on Google, you'll find some AS3 classes that remove these useless namespaces from XML to make parsing easier.




回答2:


Many people point to James Clark's explanation as one of the clearest:

http://www.jclark.com/xml/xmlns.htm



来源:https://stackoverflow.com/questions/8080947/xml-namespaces-and-e4x

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!