2010-07-26 9 views

risposta

7

Si scopre posso semplicemente effettuare le seguenti operazioni:

Function GetSomeMoreXml() As XElement 
    Return <moreXml/> 
End Function 

Sub Main() 
    Dim myXml = <myXml> 
        <%= GetSomeMoreXml() %> 
       </myXml> 
End Sub 

che è abbastanza pulito. Mi consente di suddividere i miei letterali XML in blocchi più gestibili.

-1

Se avete veramente bisogno di fare questo, si può sempre e solo fare questo:

<xml><%= myXElement.ToString() %></xml> 

non riesco a pensare di qualsiasi esempio in cui si vorrebbe fare questo però. Cura di approfondire perché hai bisogno di questo? Dovrebbe scrivere la stringa XElement, quindi analizzarla prima di aggiungerla nuovamente al modello a oggetti (immagino sia come dovrebbe funzionare almeno).

+0

Sto utilizzando XLinq e XML Literals per eseguire una trasformazione, proprio come farebbe con un XSLT. Al momento ho un blocco di letterali XML di circa 200 righe che esegue la trasformazione. I valori degli attributi e il testo sono generati con i blocchi '<% = myElement.ExtensionMethod()%>'. Speravo di scomporre alcuni blocchi dei letterali XML nel loro metodo e restituire un XElement che viene incorporato nel blocco principale dei valori letterali XML. – GiddyUpHorsey

+0

La tua soluzione funzionerebbe, ma preferirei non convertirmi in stringa e quindi tornare a XElement. Speravo ci fosse un modo più naturale per farlo. – GiddyUpHorsey

+0

Invece di utilizzare tutti i letterali XML, è possibile utilizzare un mix dei costruttori XDocument/XElement e i valori letterali per creare il documento root (si pensi a come un C# -er dovrebbe farlo). Questo o aggiungi XElements nel tuo documento tramite LINQ-to-XML per inserirli in specifiche aree di destinazione. – Ocelot20

Problemi correlati