我正在尝试制作类似的东西:
new XElement("media:thumbnail", new XAttribute("width", ""))
但我不行,因为冒号':'我收到错误。
有谁知道如何解决这个问题?
答案 0 :(得分:2)
这不是您如何使用命名空间创建XName
。
您应该使用正确的URI创建XNamespace
,然后您可以轻松创建正确的XName
- 我个人使用+
运算符。所以:
XNamespace media = "... some URI here ...";
XElement element = new XElement(media + "thumbnail", new XAttribute("width", "");
要使用特定的命名空间别名,您需要在xmlns命名空间中包含一个属性,该属性可以位于父元素中。
这是一个完整的例子:
using System;
using System.Xml.Linq;
public class Test
{
static void Main()
{
XNamespace ns = "http://someuri";
var root = new XElement("root",
new XAttribute(XNamespace.Xmlns + "media", ns),
new XElement(ns + "thumbnail", "content"));
Console.WriteLine(root);
}
}
输出:
<root xmlns:media="http://someuri">
<media:thumbnail>content</media:thumbnail>
</root>
显然你需要使用正确的名称空间URI,但是......