在同一个start元素标记内,前缀''无法从''重新定义为'http://www.sitemaps.org/schemas/sitemap/0.9'

uma*_*li1 15 xml vb.net xmlwriter xml-namespaces

我收到了这个错误

在同一个start元素标记内,前缀''无法从''重新定义为' http://www.sitemaps.org/schemas/sitemap/0.9 '

在运行此代码时

Dim writer As XmlWriter = XmlWriter.Create(FileLocation + "StaticUrls3.xml")
Dim urlList As New List(Of String)

urlList.Add("link1")
urlList.Add("link2")
urlList.Add("link3")       

writer.WriteStartDocument()
writer.WriteStartElement("urlset")
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9")

For Each aUrl As String In urlList
    writer.WriteStartElement("url")
    writer.WriteElementString("loc", aUrl)
    writer.WriteEndElement()
Next

writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?

小智 16

试试这个:

Const siteMapNamespace As String = "http://www.sitemaps.org/schemas/sitemap/0.9"
Dim writer As XmlWriter = XmlWriter.Create(FileLocation + "StaticUrls3.xml")
Dim urlList As New List(Of String)

urlList.Add("link1")
urlList.Add("link2")
urlList.Add("link3")       

writer.WriteStartDocument()
writer.WriteStartElement("urlset", siteMapNamespace)

For Each aUrl As String In urlList
    writer.WriteStartElement("url", siteMapNamespace)
    writer.WriteElementString("loc", aUrl)
    writer.WriteEndElement()
Next

writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
Run Code Online (Sandbox Code Playgroud)

  • 基本上,如果你想设置元素的`xmlns`属性,可以通过`WriteStartElement`的第二个参数而不是`WriteAttributeString`来实现. (8认同)