C# XmlWriter';:';名称中不能包含十六进制值0x3A的字符
我正在使用XmlWriter,出现以下错误:C# XmlWriter';:';名称中不能包含十六进制值0x3A的字符,c#,xml,xmlwriter,C#,Xml,Xmlwriter,我正在使用XmlWriter,出现以下错误: Invalid name character in 'news:news'. The ':' character, hexadecimal value 0x3A, cannot be included in a name. 有人知道这是什么原因吗?这是我的密码: using (XmlWriter writer = XmlWriter.Create("moo.xml")) {
Invalid name character in 'news:news'. The ':' character, hexadecimal value 0x3A, cannot be included in a name.
有人知道这是什么原因吗?这是我的密码:
using (XmlWriter writer = XmlWriter.Create("moo.xml"))
{
writer.WriteStartDocument();
writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "news", null, "http://www.google.com/schemas/sitemap-news/0.9");
writer.WriteStartElement("url");
writer.WriteElementString("loc", "http://www.monkeys.co.uk");
writer.WriteStartElement("news:news");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
}
您需要使用的重载包含两个参数:
writer.WriteStartElement("news", "http://www.google.com/schemas/sitemap-news/0.9");
// Tag ----^ ^--- Namespace
您需要使用的重载包含两个参数:
writer.WriteStartElement("news", "http://www.google.com/schemas/sitemap-news/0.9");
// Tag ----^ ^--- Namespace
@Funky:而不是
writer.WriteStarteElement(“新闻:新闻”)代码>。它将产生以下标记:
。因为URI对于编写器来说已经是名称空间,所以它使用为该URI注册的前缀。@Funky:BTW:您不使用XmlDocument或XDocument(首选)有什么具体原因吗?。XmlWriter通常只在有大量数据的情况下使用,这些数据很难立即保存在内存中。不,没有具体原因,我只是在教程中看到了它,然后继续介绍,现在我将研究XmlDocument和XDocument,正如您所说的,它更适合这种类型的文档thing@Funky:是的,查看XDocument。它要简单得多,尤其是在处理复杂的XML结构时。@Funky:而不是writer.writeStarteElement(“新闻:新闻”)代码>。它将产生以下标记:
。因为URI对于编写器来说已经是名称空间,所以它使用为该URI注册的前缀。@Funky:BTW:您不使用XmlDocument或XDocument(首选)有什么具体原因吗?。XmlWriter通常只在有大量数据的情况下使用,这些数据很难立即保存在内存中。不,没有具体原因,我只是在教程中看到了它,然后继续介绍,现在我将研究XmlDocument和XDocument,正如您所说的,它更适合这种类型的文档thing@Funky:是的,查看XDocument。这要简单得多,尤其是在处理复杂的XML结构时。