Ich habe ein Bild Sitemap, die Knoten wie folgt hat:Wie erstelle ich einen XML-Knoten wie "image: image" ohne xmnls-Attribut? C#
<image:image xmlns:image="image">
<image:loc>
https://website
</image:loc>
<image:caption/>
<image:title>logo72x72</image:title>
</image:image>
Dies ist der Code, der es schafft:
XmlNode imageNode = doc.CreateElement("image", "image", "image");
XmlNode imageLocNode = doc.CreateElement("image", "loc", "image");
imageLocNode.AppendChild(doc.CreateTextNode(imageUrl));
imageNode.AppendChild(imageLocNode);
XmlNode imageCaptionNode = doc.CreateElement("image", "caption", "image");
imageCaptionNode.AppendChild(doc.CreateTextNode(imageCaption));
imageNode.AppendChild(imageCaptionNode);
XmlNode imageTitleNode = doc.CreateElement("image", "title", "image");
imageTitleNode.AppendChild(doc.CreateTextNode(imageTitle));
imageNode.AppendChild(imageTitleNode);
urlNode.AppendChild(imageNode);
jedoch in der Google Search Console Ich erhalte einen Fehler, da des Bild-Tags, das nicht mit der Google-Dokumentation übereinstimmt. Laut Google sollte das Image-Tag wie folgt aussehen: <image:image>
, nicht <image:image xmlns:image="image">
.
Ich änderte den Code zu doc.CreateElement("image", "image")
, aber das änderte die Ausgabe zu <image xmlns:image="image">
(es entfernte den Teil, den ich wollte, und verließ die xmnls). Wie verhindere ich, dass das Attribut xmlns hinzugefügt wird?
EDIT: Der Namespace in der Wurzel meines Dokuments deklariert ist:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
Sie müssen den richtigen Namespace irgendwo angeben. Überprüfen Sie die Dokumentation, es gibt immer eine Deklaration und die URL muss auch übereinstimmen. –
Der Namespace wird im Stammverzeichnis meines Dokuments deklariert: –
Sie müssen die Uri_ für Bild nicht das String-Bild als 3. Parameter von createelement übergeben – tolanj