首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为XDocument指定xmlns?

如何为XDocument指定xmlns?
EN

Stack Overflow用户
提问于 2013-02-12 19:59:50
回答 1查看 19.1K关注 0票数 15

我试过:

代码语言:javascript
运行
复制
textBox1.Text = new XDocument(new XDeclaration("1.0", "UTF-8", "yes"),
    new XElement("root1", new XAttribute( "xmlns", @"http://example.com"), new XElement("a", "b"))
).ToString();

但我明白:

代码语言:javascript
运行
复制
The prefix '' cannot be redefined from '' to 'http://example.com' within the same start element tag.

我还试着用(根据我发现的一个答案)来代替:

代码语言:javascript
运行
复制
XAttribute(XNamespace.Xmlns,...

但也有个错误。

注意事项:我不想在文档中有一个以上的xmlns。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 20:10:18

XDocument API处理命名空间作用域名称的方式是XName实例。只要您接受XML名称不仅仅是一个字符串,而是一个范围内的标识符,这些操作就相当容易处理。我是这样做的:

代码语言:javascript
运行
复制
var ns = XNamespace.Get("http://example.com");
var doc = new XDocument(new XDeclaration("1.0", "utf-8", null));
var root = new XElement(ns + "root1", new XElement(ns + "a", "b"));
doc.Add(root);

结果:

代码语言:javascript
运行
复制
<root1 xmlns="http://example.com">
    <a>b</a>
</root1>

注意,+操作符被重载,以接受要生成和XName实例的XNamespaceString

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14840723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档