【发布时间】:2010-08-20 02:21:56
【问题描述】:
在我正在进行的一个项目中,我刚刚为我的 XML 编写了一个 XSD,以便其他工程师可以更轻松地处理 XML。与此 XSD 一起出现的是 XML 名称空间。在我当前的解析代码中,我一直在使用这样的东西:
XElement element = xmlRoot.Element(XML.ELEMENT_NAME);
XML 是一个充满常量的类,在整个程序中用于 XML 输入和输出。但是,现在使用了命名空间,这不再起作用了。显而易见但几乎没有优雅的解决方案是进入并使所有解析代码看起来像这样:
XElement element = xmlRoot.Element(XML.NAMESPACE + XML.ELEMENT_NAME);
再想一想,定义一个扩展方法来添加到这个命名空间并返回 XElement 看起来会好很多。这个想法会使代码看起来像这样:
XElement element = xmlRoot.GetMyElement(XML.ELEMENT_NAME);
这些想法是我迄今为止提出的用于处理命名空间问题的方法。
基本上,我的问题是这样的:
有没有更好的方法来解析具有已知常量名称空间的 XElements?如果有,是什么?
【问题讨论】:
标签: c# xml-namespaces xelement