如何创建一个XML节点,例如;图像:图像“;没有xmnls属性?C#
我有一个图像站点地图,其节点如下:如何创建一个XML节点,例如;图像:图像“;没有xmnls属性?C#,c#,xml,image,nodes,C#,Xml,Image,Nodes,我有一个图像站点地图,其节点如下: <image:image xmlns:image="image"> <image:loc> https://website </image:loc> <image:caption/> <image:title>logo72x72</image:title> </image:image> 然而,在谷歌搜索控制台中,我得到了一个错误,因为图像标签与谷歌的文
<image:image xmlns:image="image">
<image:loc>
https://website
</image:loc>
<image:caption/>
<image:title>logo72x72</image:title>
</image:image>
然而,在谷歌搜索控制台中,我得到了一个错误,因为图像标签与谷歌的文档不匹配。根据谷歌的说法,图像标签应该看起来像
,而不是
我将代码更改为doc.CreateElement(“image”,“image”)
,但这将输出更改为
(它删除了我想要的部分,并保留了xmnls)。如何防止添加xmlns属性
编辑:命名空间在我的文档的根目录中声明:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
您需要为每个元素使用正确的名称空间。名称空间是
http://www.google.com/schemas/sitemap-image/1.1
,而不是图像
doc.CreateElement("image", "image", "http://www.google.com/schemas/sitemap-image/1.1")`
image
是名称空间前缀,名称空间前缀必须由元素或任何祖先元素中的xmlns:image=“…”
声明。在您的情况下,它是在文档的根目录中声明的,因此不会再次添加它。您需要在某个地方声明正确的名称空间。检查文档,总是有一个声明,URL也必须匹配。命名空间在我的文档的根中声明:您需要传递图像的Uri而不是字符串图像作为CreateElement的第三个参数。图像的Uri是什么?
doc.CreateElement("image", "image", "http://www.google.com/schemas/sitemap-image/1.1")`