2010-07-26 10 views

Antwort

7

Es stellt sich Ich kann einfach wie folgt vor:

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

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

Welche recht ordentlich ist. Es erlaubt mir, meine XML-Literale in handlichere Stücke aufzuteilen.

-1

Wenn Sie wirklich tun müssen, man konnte immer dies nur tun:

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

Ich kann nicht von jedem Beispiel denken, wo Sie dies wünschen würde allerdings tun. Kümmere dich darum, warum du das brauchst? Es müsste die XElement-Zeichenfolge ausschreiben und dann analysieren, bevor sie wieder in das Objektmodell eingefügt wird (ich stelle mir vor, dass es zumindest funktionieren müsste).

+0

Ich verwende XLinq und XML-Literale, um eine Transformation durchzuführen, ähnlich wie bei einem XSLT. Im Moment habe ich einen Block von XML-Literalen, der ungefähr 200 Zeilen lang ist und die Transformation durchführt. Attributwerte und Text werden mit '<% ​​= myElement.ExtensionMethod()%>' Blöcken erzeugt. Ich hatte gehofft, einige Blöcke der XML-Literale in ihre eigene Methode auszubrechen und ein XElement zurückzugeben, das zurück in den Hauptblock von XML-Literalen eingebettet wird. – GiddyUpHorsey

+0

Ihre Lösung würde funktionieren, aber ich möchte lieber nicht in eine Zeichenfolge konvertieren und dann wieder in XElement einlesen. Ich hatte gehofft, dass es einen natürlicheren Weg dafür gibt. – GiddyUpHorsey

+0

Anstatt alle XML-Literale zu verwenden, könnten Sie eine Mischung aus den XDocument/XElement-Konstruktoren und Ihren Literalen verwenden, um das Stammdokument zu erstellen (denken Sie daran, wie ein C# -Er es tun müsste). Das oder fügen Sie die XElements über LINQ-to-XML in Ihr Dokument ein, um sie in bestimmte Zielbereiche einzufügen. – Ocelot20