我正在使用 Livestream API,我需要获取一些带有所需频道信息的 XML,因此在使用 XML 对象读取 XML 值时遇到问题,因为标签中有“:”符号标签名称,如下所示:
<ls:isLive>true</ls:isLive>
当我尝试像这样选择时,它显然会返回一个解析错误:
xmlData.ls:isLive
然后我尝试了这种方式,但它返回了空值:
xmlData["ls:isLive"]
如何通过标签名称选择此元素的值?
我正在使用 Livestream API,我需要获取一些带有所需频道信息的 XML,因此在使用 XML 对象读取 XML 值时遇到问题,因为标签中有“:”符号标签名称,如下所示:
<ls:isLive>true</ls:isLive>
当我尝试像这样选择时,它显然会返回一个解析错误:
xmlData.ls:isLive
然后我尝试了这种方式,但它返回了空值:
xmlData["ls:isLive"]
如何通过标签名称选择此元素的值?
您正在处理一个 xml 命名空间。在 xml 标头中应该是这样的定义
xmlns:ls='http://someuri/schema'
您需要定义一个命名空间并使用该命名空间访问节点
我认为这篇文章会有所帮助: xml 和命名空间
假设您的 xml 如下所示:
var xml:XML = <root xmlns:ls="http://blabla.com">
<ls:isLive>true</ls:isLive>
</root>
要访问isLive
标签,您需要声明Namespace:
var ls:Namespace = new Namespace("ls","http://blabla.com") ;
var isLiveTag:* = xml.ls::isLive;
你确定是你要访问的内容吗?我尝试使用该标签,但 as3 给了我一个错误。
我认为您正在访问错误的元素名称。
名称应该短而简单,像这样:不是这样:。
避免使用“-”字符。如果您将某些东西命名为“名字”,某些软件可能会认为您想从名字中减去名字。
避免 ”。” 人物。如果您将某个东西命名为“first.name”,某些软件可能会认为“name”是对象“first”的属性。
避免使用“:”字符。冒号保留用于称为名称空间的东西(稍后会详细介绍)。