在标签中使用冒号 (:) 时的 XML 语法

Posted

技术标签:

【中文标题】在标签中使用冒号 (:) 时的 XML 语法【英文标题】:XML Syntax when Using Colon (:), in Tags 【发布时间】:2011-12-30 05:20:51 【问题描述】:

我正在开发一个移动应用程序,并且必须读取 xml 提要并解析信息。它有一个特殊的标签,如<dc:creator> Jonethon Owens </dc:creator>

在 C# 中,我使用的是 LINQ to XML,但不知道如何准确处理这种类型的标记来解析和获取信息。

如果有人可以解释如何实现这一点,非常感谢。提前致谢

【问题讨论】:

查看 'dc' 是否已在 xml 顶部声明为命名空间。 在 xml 文档的顶部显示 xmlns:dc="purl.org/dc/elements/1.1" 所以你从 FailedDev 得到了答案(没有失败)! 【参考方案1】:

您需要命名空间前缀。

XNamespace dc = "http://purl.org/dc/elements/1.1/";


var query = from lst in XElement.Load(@"foo.xml").Elements(dc +"creator")

            select ...

【讨论】:

感谢 FailedDev,我收到异常“空对象”。可能是我给了 XNamespace dc = "purl.org/dc/elements/1.1/"。因为在 XML 文件的顶部它指示 xmlns:dc="purl.org/dc/elements/1.1/"。是否应该分配给 XNamespace dc。 @JibW 不,这是你的命名空间。您正在通过其他一些代码获得异常,但您没有显示。 其他XML标签都正常。他们没有分号。因此,当我评论 [Creator = (string)result.Element(dc+"creator").Value] 时,其他人工作正常。我给了 XNamespace dc = "purl.org/dc/elements/1.1/" 这样。我不确定我分配给 dc 的值是否正确 @JibW 如果我们没有看到 .xml,我们无法帮助您。 @JibW 更新的答案具有正确的命名空间。您的问题出在其他地方。

以上是关于在标签中使用冒号 (:) 时的 XML 语法的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的替代语法(冒号endifendwhileendfor)

xml基本概念和语法

XML 语法规则

CANoe中XML编程常用标签语法

XML 基本语法

XML语法