2010-07-26 5 views

Respuesta

7

Resulta que puedo hacer simplemente lo siguiente:

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

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

que es bastante limpio. Me permite dividir mis literales XML en fragmentos más manejables.

-1

Si realmente necesita hacer eso, siempre se puede simplemente hacer esto:

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

No puedo pensar en ningún ejemplo en el que se quiere hacer esto sin embargo. ¿Te importa explicar por qué necesitas esto? Tendría que escribir la cadena XElement, luego analizarla antes de volver a agregarla al modelo de objetos (imagino que así debería funcionar al menos).

+0

Estoy usando XLinq y XML Literals para realizar una transformación, muy parecido a lo que harías con un XSLT. Por el momento, tengo un bloque de literales XML de aproximadamente 200 líneas que realiza la transformación. Los valores de atributo y el texto se generan con bloques '<% = myElement.ExtensionMethod()%>'. Esperaba dividir algunos bloques de los literales XML en su propio método y devolver un XElement que se incrusta en el bloque principal de literales XML. – GiddyUpHorsey

+0

Su solución funcionaría, pero prefiero no convertirla en cadena y luego analizar de nuevo en XElement. Esperaba que hubiera una forma más natural de hacerlo. – GiddyUpHorsey

+0

En lugar de utilizar todos los XML Literals, puede usar una combinación de los constructores de XDocument/XElement y sus literales para crear el documento raíz (piense en cómo debería hacerlo un C# -er). Eso o agregue los elementos XElements en su documento a través de LINQ-to-XML para insertarlos en áreas objetivo específicas. – Ocelot20

Cuestiones relacionadas