解析 XML 命名空间?

Posted

技术标签:

【中文标题】解析 XML 命名空间?【英文标题】:Parsing XML namespaces? 【发布时间】:2010-11-08 04:29:49 【问题描述】:

使用 javascript/Ajax?

我正在尝试从以下位置提取值:

<yweather:astronomy sunrise="6:34 am"   sunset="8:38 pm"/>

寻找类似的东西:

var response = transport.responseXML.getElementsByTagName("channel");
sunrise = response[0].getElementsByTagName("yweather:astronomy").item(0).Attributes["sunrise"].Value;

但到目前为止没有任何效果。 :'( 谢谢。

【问题讨论】:

【参考方案1】:

对于命名空间有一个特殊版本的getElementsByTagNamegetElementsByTagNameNS

例如:

var response = transport.responseXML.getElementsByTagName("channel");
var sunrise = response[0].getElementsByTagNameNS("[Namespace URI]", "astronomy")[0].getAttribute("sunrise");

...其中[Namespace URI]yweather 命名空间的URI。

史蒂夫

【讨论】:

@annakata:出于兴趣,你在IE里怎么做? 我认为您可以将 getElementsByTagName("yweather:astronomy") 与 IE 一起使用。此外,Google feeds API 具有跨浏览器实现。也许你可以使用它,或者类似的东西:code.google.com/apis/ajaxfeeds/documentation/… 在 MSXML 中,您可以在 XML DOMDocument 对象上设置“SelectionNamespaces”属性,然后将非标准“selectNodes”(或“selectSingleNode”)方法与 XPath 选择器一起使用。有关示例,请参见 xml.com/pub/a/2002/06/05/msxml4.html @NickFitz:啊,我明白了。谢谢! 您可能需要转义冒号“yweather\\:astronomy”

以上是关于解析 XML 命名空间?的主要内容,如果未能解决你的问题,请参考以下文章

解析 XML 命名空间?

XML 和 XSL 中的前缀命名空间处理由 XML 解析器返回错误

python对于操作xml 忽略命名空间 处理解析修改xml

python对于操作xml 忽略命名空间 处理解析修改xml

python对于操作xml 忽略命名空间 处理解析修改xml

python对于操作xml 忽略命名空间 处理解析修改xml