我正在使用以下代码创建新的XML文档:
Dim doc As New XmlDocument()
Dim docNode As XmlNode = doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
doc.AppendChild(docNode)
Dim rssNode As XmlNode = doc.CreateElement("rss")
rssNode.Attributes.Append(doc.CreateAttribute("version")).Value = "2.0"
rssNode.Attributes.Append(doc.CreateAttribute("xmlns:g")).Value = "http://base.google.com/ns/1.0"
doc.AppendChild(rssNode)
Dim ChannelNode As XmlNode = doc.CreateElement("channel")
rssNode.AppendChild(ChannelNode)
ChannelNode.AppendChild(doc.CreateElement("Title")).InnerText = "Product List"
ChannelNode.AppendChild(doc.CreateElement("link")).InnerText = HttpContext.Current.Request.Url.Host
ChannelNode.AppendChild(doc.CreateElement("description")).InnerText = "Web Site Product Links"
然后我循环遍历我的对象列表并使用以下代码将项添加到XML:
Dim itemNode As XmlNode = doc.CreateElement("item")
ChannelNode.AppendChild(itemNode)
itemNode.AppendChild(doc.CreateElement("g", "id", "g:id")).InnerText = item.id
虽然这确实生成了XML文档,但它采用以下格式:
<?xml version="1.0"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<Title>Product List</Title>
<link>localhost</link>
<description>Web Site Product Links</description>
<item>
<g:id xmlns:g="g:id">123456</g:id>
</item>
</channel>
我遵循以下格式:
<?xml version="1.0"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<Title>Product List</Title>
<link>localhost</link>
<description>Web Site Product Links</description>
<item>
<g:id>123456</g:id>
</item>
</channel>
我尝试的所有内容似乎都删除了XMLNS属性,但也从元素标记中删除了“g:”,我找不到只删除XMLNS标记所需的组合,并将其保留在我的示例中。
任何帮助都将不胜感激。
答案 0 :(得分:0)
将名称空间保存在变量中:
Dim myNamespace as String = "http://base.google.com/ns/1.0"
然后在xmlns声明中使用该命名空间:
rssNode.Attributes.Append(doc.CreateAttribute("xmlns:g")).Value = myNamespace
然后在创建节点时:
itemNode.AppendChild(doc.CreateElement("g", "id", myNamespace)).InnerText = item.id