ASP.NET Creazione di un nodo Xlink in e XDocument
-
12-11-2019 - |
Domanda
Sto cercando di aggiungere a livello di programmazione un nuovo nodo Xlink a un XDocument ma .NET sembra crearli come spazi dei nomi e nomi atomizzati e non riesco a trovare alcun codice per aggiungere nodi XLink a XML?
Il mio codice sembra così:
//read in the current XML content
XDocument content = XDocument.Parse(xmlContent);
//add a new node called large images
XElement newNode = new XElement("large_images", "");
newNode.SetAttributeValue("{xmlns}xlink", "http://www.w3.org/1999/xlink");
newNode.SetAttributeValue("{xlink}type", "simple");
newNode.SetAttributeValue("{xlink}href", "tcm:5-550");
newNode.SetAttributeValue("{xlink}title", "of1_454x340.jpg");
content.Add(newNode);
Purtroppo questo newnode esce così:
<large_images p1:xlink="http://www.w3.org/1999/xlink" p2:type="simple" p2:href="tcm:5-550" p2:title="of1_454x340.jpg" xmlns:p2="xlink" xmlns:p1="xmlns"></large_images>
Ma ho bisogno che il nodo assomigli a questo per far passare la convalida XML:
<large_images xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="tcm:5-550" xlink:title="of1_454x340.jpg"></large_images>
Qualcuno può aiutare? Non voglio percorrere la rotta String.replace () in quanto sembra che questo debba essere possibile in un altro modo?
Grazie
Ryan
Soluzione
Lo farei come:
XNamespace ns = "http://www.w3.org/1999/xlink";
XElement newNode = new XElement("large_images",
new XAttribute(XNamespace.Xmlns + "xlink", ns),
new XAttribute(ns + "type", "simple),
new XAttribute(ns + "href", "tcm:5-550"),
new XAttribute(ns + "title", "of1_454x340.jpg"));
Questo produce XML di:
<large_images xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
xlink:href="tcm:5-550" xlink:title="of1_454x340.jpg" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow