Scrivi XML Frammento con LINQ e prefissi
-
26-09-2019 - |
Domanda
Ho un documento creato in un costruttore, e durante l'esecuzione io sono di riempimento in con frammenti generati da Business Objects personalizzato.
Quando sto in uscita i frammenti, ho bisogno di includere i frammenti dello spazio dei nomi, ma Vorrei evitare di aggiungere l'url spazio dei nomi per ogni frammento, dal momento che è definito nella root.
Qualche idea?
_doc = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement(aw + "kml",
new XAttribute(XNamespace.Xmlns + "gx", "http://www.google.com/kml/ext/2.2"),
new XAttribute("xmlns", "http://www.opengis.net/kml/2.2"),
new XElement(aw+"Document",
Ecco come inizia la doc, quindi gli spazi dei nomi ci sono. Come posso fare per costruire un XElement aggiungere utilizzando il prefisso di gx?
Soluzione
Usa lo stesso URI per un XNamespace
:
XNamespace gx = "http://www.google.com/kml/ext/2.2";
XElement foo = new XElement(gx + "foo");
LINQ to XML utilizzerà il prefisso appropriato automaticamente, se ho capito bene.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow